1.for循环
const arr =[1,4,5,6]
let sum =0;
for(var i =0;i<arr.length; i++){
sum +=arr[i]
}
console.log(sum);//16
2.for..of:遍历的是对象的属性值,而不是属性名(for..in.),for..of
更安全,因为不会遍历对象的原型链上的属性,而 for..in
可能会。
const arr =[1,4,5,6]
let sum =0
for (let value of arr) {
sum +=value
}
console.log(sum);//16
3.reduce:方法用于将数组中的每个元素执行一个累加器函数(reduce 函数)后,返回一个累积的结果。
返回值:reduce
方法的返回值是累积器函数累计处理的结果值
const arr =[1,4,5,6]
function sum(arr){
return arr.reduce((pre,currValue)=> pre + currValue,0)
}
console.log(sum(arr));//16
4.forEach:forEach
方法用于对数组中的每个元素执行一个提供的函数。
返回值:forEach
方法没有返回值(即返回 undefined
)。它只是对数组中的每个元素执行一次回调函数,并没有返回累积的值。
const arr =[1,4,5,6]
function sum(arr) {
var sumRes =0
arr.forEach((element,index,arr)=>{sumRes+=element})
return sumRes
}
console.log(sum(arr));//16
5.eval和join:eval
函数虽然可以执行字符串中的 JavaScript 代码,但它通常被认为是不安全的,因为它可以执行任何 JavaScript 代码,这可能导致安全问题。在实际开发中,尽量避免使用 eval
const arr =[1,4,5,6]
function sum(arr){
return eval(arr.join("+"))
}
console.log(sum(arr));//16
6.递归
const arr =[1,4,5,6]
function sum(arr){
var len =arr.length
if(len==0){
return 0
}else if(len==1){
return arr[0]
}else{
return arr[0] +sum(arr.slice(1))
}
}
console.log(sum(arr));//16