mag*_*sbl 50 javascript arrays digits
到目前为止这是我的代码:
var n = 123456789;
var d = n.toString().length;
var digits = [];
var squaredDigits = [];
for (i = d; i >= 1; i--) {
var j = k / 10;
var r = (n % k / j) - 0.5;
var k = Math.pow(10, i);
var result = r.toFixed();
digits.push(result);
}
console.log(digits);
Run Code Online (Sandbox Code Playgroud)
但是当我运行我的代码时,我得到了这个: [9, 1, 2, 3, 4, 5, 6, 7, 8]
如果有人能看到问题或找到更好的解决方案,我将非常感激!
Nie*_*sol 78
为什么不这样做呢?
var n = 123456789;
var digits = (""+n).split("");
Run Code Online (Sandbox Code Playgroud)
sam*_*one 47
(123456789).toString(10).split("")
Run Code Online (Sandbox Code Playgroud)
^^这将返回一个字符串数组
(123456789).toString(10).split("").map(function(t){return parseInt(t)})
Run Code Online (Sandbox Code Playgroud)
^^这将返回一个int数组
Nic*_*one 39
关于什么:
const n = 123456;
Array.from(n.toString()).map(Number);
// [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
use*_*439 26
我意识到这是几个月前被问到的,但我对samccone的回答更加简洁,但我没有代表添加作为评论!
代替:
(123456789).toString(10).split("").map(function(t){return parseInt(t)})
Run Code Online (Sandbox Code Playgroud)
考虑:
(123456789).toString(10).split("").map(Number)
Run Code Online (Sandbox Code Playgroud)
Ale*_*der 12
修改了以上答案。我们实际上不必显式调用'map'方法,因为它已经作为第二个参数内置在'Array.from'中。从MDN开始。
Array.from(arrayLike [,mapFn [,thisArg]])
let num = 1234;
let arr = Array.from(String(num), Number);
console.log(arr); // [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118190 次 |
| 最近记录: |