将数字转换为反转的数字数组

新手上路,请多包涵

我开发了这个代码笔 ( http://codepen.io/PiotrBerebecki/pen/qZjojV?editors=0010 ) 试图解决以下 JavaScript 问题:

给定一个非负整数,返回一个包含倒序独立数字列表的数组。示例:348597 => 正确的解决方案应该是 [7,9,5,8,4,3]

下面的函数显然是不正确的,因为它返回 [“7”, “9”, “5”, “8”, “4”, “3”] - 正确的顺序但带有引号。我如何修改它以使其返回 [7,9,5,8,4,3]?

 function digitize(n) {
  var initialArray = (""+n).split('');
  var reversedArray = [];
  for (var i = initialArray.length - 1; i >= 0; i--) {
    reversedArray[i] = initialArray.shift();
  }
  return reversedArray;
}

原文由 Piotr Berebecki 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 613
2 个回答

添加 parseInt 以将字符串转换为数字,因为拆分时会将每个整数转换为字符串

 function digitize(n) {
  var initialArray = (""+n).split('');
  var reversedArray = [];
  for (var i = initialArray.length - 1; i >= 0; i--) {
    reversedArray[i] = parseInt(initialArray.shift(),10);
  }
  return reversedArray;
}

console.log(digitize(348597));

原文由 user2950720 发布,翻译遵循 CC BY-SA 3.0 许可协议

“一线”解决方案:

 var num = 348597,
    arr = String(num).split("").reverse().map(Number);

console.log(arr);  // [7, 9, 5, 8, 4, 3]

  • String(num)字符串 全局对象充当字符串的构造函数并将给定数字“转换”为字符串(在本例中)

  • Array.reverse() :方法原地反转数组

  • Array.map() : 方法创建并返回一个新数组,在每个数组元素上调用提供的函数

原文由 RomanPerekhrest 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题