我遇到一个问题,它要求计算一个数字数组的“权重”。当我试图研究这一点时,有一位消息人士说,整数数组的“权重”是数组中每个整数的数字的权重和。因为1+1+1+3+2+2+3+1 = 14
,所以arr = [11, 13, 22, 31]
的“权重”等于14。
我的理解是正确的吗?如何在JS中编写返回此类数组权重的函数?您是否将数组拆分为一个字符串,然后简单地相加?
谢谢。
发布于 2016-08-18 20:40:47
因为每个人都在引用-权重是数字的总和,而不是数字。函数很简单:
var w = 0;
for (var i=0; i<arr.length; i++) {
w = w + arr[i];
}
console.log(w);
但是,如果你想把所有的数字加在一起,你几乎是正确的-数字变成字符串,拆分它,回到整数,然后求和。
var w = 0;
for (var i=0; i<arr.length; i++) {
x = arr[i].toString();
for (var j=0; j<x.length; j++){
ss = ss + parseInt(x.charAt(j)); //add digit by digit
}
w = w + ss; //add the sum of digits of 1 number to the total sum
}
console.log(w);
https://stackoverflow.com/questions/39018179
复制相似问题