gpt4 book ai didi

javascript - 在 JavaScript 中从一维数组返回二维数组

转载 作者:行者123 更新时间:2023-11-28 11:51:11 26 4
gpt4 key购买 nike

我有一个由一系列数字组成的一维数组:

var x = ['9493-4937-288383-8473', '4838-38403-8484', '9384-3848-4978-4944', '3920-2108-2845-1904'];

我试图将每个数字的数字之和插入到它旁边以创建一个二维数组,以便输出为:

[ [ '9493-4937-288383-8473', 96 ],
[ '4838-38403-8484', 65 ],
[ '9384-3848-4978-4944', 96 ],
[ '3920-2108-2845-1904', 58 ] ]

不幸的是,我的代码:

for (var i = 0; i < x.length; i ++) {
var y = x[i].replace(/[- )(]/g,'');

var sum = 0;
var z = y;
while (z > 0) {
sum = sum + z % 10;
z = Math.floor(z / 10);
}

var xWithSum = [x[i]];

xWithSum.push(sum);

console.log(xWithSum);

}

结果如下:

[ '9493-4937-288383-8473', 96 ]
[ '4838-38403-8484', 65 ]
[ '9384-3848-4978-4944', 96 ]
[ '3920-2108-2845-1904', 58 ]

也就是说,我最终得到了四个独立的二维数组,而不是一个包含四个项目的二维数组。

有人可以告诉我我的(新手)JavaScript 方法的错误吗?

最佳答案

您需要将 xWithSum 推送到结果数组上。

var x = ['9493-4937-288383-8473', '4838-38403-8484', '9384-3848-4978-4944', '3920-2108-2845-1904'];
var result = [];
for (var i = 0; i < x.length; i++) {
var y = x[i].replace(/[- )(]/g, '');

var sum = 0;
var z = y;
while (z > 0) {
sum = sum + z % 10;
z = Math.floor(z / 10);
}

var xWithSum = [x[i], sum];
result.push(xWithSum);
}

console.log(result);

您还可以使用.map() 对数组的每个元素运行函数并返回结果数组。

var x = ['9493-4937-288383-8473', '4838-38403-8484', '9384-3848-4978-4944', '3920-2108-2845-1904'];
var result = x.map(function(el) {
var y = el.replace(/[- )(]/g, '');

var sum = 0;
var z = y;
while (z > 0) {
sum = sum + z % 10;
z = Math.floor(z / 10);
}

var xWithSum = [el, sum];
return xWithSum;
});

console.log(result);

关于javascript - 在 JavaScript 中从一维数组返回二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com