[英]Get nth value in array sum of all values
我有一个元素数组,我需要使用Java脚本将每个第一个,七个,十三个和十九个(70、74、50、70)值相加并求和。
var rowSpanHeight = ['70', '70', '70', '70', '70', '70','74', '74', '74', '74', '74', '74','50', '50', '50', '50', '50', '50','70', '70', '70', '70', '70', '70'];
有人可以帮忙吗? 谢谢!
我从您的问题假设,只要它们在数组中更改,就必须添加它们,在这种情况下,您可以使用:
function sumIfDifferent( inputArr ) {
var lastNum = -1;
var total = 0;
for (var i = 0, l = inputArr.length; i < l; i++) {
num = parseInt(inputArr[i], 10);
if (num != lastNum) {
lastNum = num;
total+=num;
}
}
return total;
}
alert(sumIfDifferent(['70', '70', '70', '70', '70', '70','74', '74', '74', '74', '74', '74','50', '50', '50', '50', '50', '50','70', '70', '70', '70', '70', '70']));
只需将它们加起来即可:
var rowSpanHeight = ['70', '70', '70', '70', '70', '70','74', '74', '74', '74', '74', '74','50', '50', '50', '50', '50', '50','70', '70', '70', '70', '70', '70']; document.write(parseInt(rowSpanHeight[0]) + parseInt(rowSpanHeight[6]) + parseInt(rowSpanHeight[12]) + parseInt(rowSpanHeight[18]));
一个简单的方法是-
var rowSpanHeight = ['70', '70', '70', '70', '70', '70','74', '74', '74', '74', '74', '74','50', '50', '50', '50', '50', '50','70', '70', '70', '70', '70', '70']; var sum = ~~rowSpanHeight [0] + ~~rowSpanHeight [6] + ~~rowSpanHeight [12] + ~~rowSpanHeight [18]; console.log(sum);
注意:这里使用~~
(双波浪号)是将字符串转换为数字的快速方法,如果字符串是12.12,则本不会使用该字符,因为~~
将删除小数点后的所有内容(类似于parseInt) 。 SO问题的更多信息,例如https://stackoverflow.com/a/10841248/2737978
这样的事情可能会起作用...
var sum=0;
for(var a in rowSpanHeight){
switch(a){
case 0:
case 6:
case 12:
case 18:
sum+=parseInt(rowSpanHeight[a]);
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.