给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
给定一个数组[1,2,3,4],如何求其元素的和?(在这种情况下,总数为10。)
我认为每个美元可能有用,但我不确定如何实现它。
当前回答
带reduce()
[1, 2, 3, 4].reduce((a, b) => a + b, 0); // 10
使用forEach()
let sum = 0;
[1, 2, 3, 4].forEach(n => sum += n);
sum; // 10
带参数
function arrSum(arr) {
sum = 0;
arr.forEach(n => sum += n);
return sum;
}
arrSum([1, 2, 3, 4]) // 10
其他回答
考虑到您拥有阵列
const arr = [1, 2, 3, 4];
对我来说,最直观的方法是使用For in
let sum = 0;
for(var value in arr) {
sum += arr[value];
}
console.log('Array:', arr);
console.log('Sum:', sum);
然而,您也可以使用箭头函数和reduce函数
const sum = arr.reduce(function (a, b) {
return a + b;
}, 0);
console.log('Array:', arr);
console.log('Sum:', sum);
他们都会输出
Array: [ 1, 2, 3, 4]
Sum: 10
使用reduce
设arr=[1,2,3,4];设和=arr.reduce((v,i)=>(v+i));console.log(总和);
非常简单
步骤1我们应该有一个数组,如:
const arrayNumber = [500,152,154,1555,12445];
第2步(如果需要,可以忽略这个步骤)要确保表中的所有值都是数字
let newArray = [];
for (let i = 0; i < arrayNumber.length; i++) {
newArray.push(parseInt(arrayNumber[i], 10));
}
步骤3
const sumInArray = dataData.reduce( (a, b) => a + b);
最后
console.log(sumInArray);
建议(使用默认值减少)
Array.prototype.reduce可用于遍历数组,将当前元素值与先前元素值之和相加。
控制台日志([1,2,3,4].减少((a,b)=>a+b,0))控制台日志([].减少((a,b)=>a+b,0))
无默认值
你得到一个TypeError控制台日志([].减少((a,b)=>a+b))
ES6箭头功能之前
控制台日志([1,2,3].reduce(函数(acc,val){return acc+val;},0))控制台日志([].reduce(函数(acc,val){return acc+val;},0))
非数字输入
如果非数字是可能的输入,您可能想处理它?控制台日志([“hi”,1,2,“frog”].减少((a,b)=>a+b))让numOr0=n=>isNaN(n)?0:n控制台日志([“hi”,1,2,“frog”].减少((a,b)=>numOr0(a)+numOr0)
非推荐危险评估用途
我们可以使用eval来执行JavaScript代码的字符串表示。使用Array.prototype.join函数将数组转换为字符串,我们将[1,2,3]更改为“1+2+3”,其值为6。
控制台日志(eval([1,2],3],join('+')))//如果建立阵列,这种方式很危险//因为它可能被利用,例如:eval([1,“2;alert('恶意代码!')”].join('+'))
当然,显示警报并不是可能发生的最糟糕的事情。我之所以将此作为奥特蒙德问题的答案,是因为我认为这一问题没有得到澄清。
这要容易得多
function sumArray(arr) {
var total = 0;
arr.forEach(function(element){
total += element;
})
return total;
}
var sum = sumArray([1,2,3,4])
console.log(sum)