珠峰高级Web课程4(数组求和+柯理化函数)

数组求和

方法一:

let arr = [1, 2, 3, 4];
let total = 0;
arr.forEach(item => {
    console.log(item);
    total += item
});

console.log(total);

方法二:

arr.join('+') //'1+2+3+4'
eval('1+2+3+4') //10  eval可以把字符串变为JS表达式去执行 
//-----
console.log(eval(arr.join('+')));

方法三:

// reduce:迭代/循环数组中的每一项,每一次迭代都会触发回调函数执行,但是此方法可以实现每次处理结果的累计
let total = arr.reduce((res, item, i) => {
  // 第一次: res =1 item是=2 i=1  从数组的第二项开始迭代 结果是3
  // 第二次: res =3 (上一次迭代处理的结果)   结果是6   item=3 i=2
  // 第三次: res =6 item=4 index =3 结果是 6+4 =10 迭代完成,把最后一次的结果当成 reduce的返回值
  return res + item
})
console.log(total);

方法四:
let arr = [1, 2, 3, 4];

let total = arr.reduce((res, item, i) => {
  // 第一次: res =100 item是=1 i=1  从数组的第一项开始迭代 返回的是 res +item  100+1
  // ...
  return res + item
}, 100)


方法五:
const fn = function fn(...params) {
  // params:[1,2]
  return function anonymous(...args) {
    // args:[3]
    return params.concat(args).reduce((res, item) => res + item);
  };
};

let res = fn(1, 2)(3)
console.log(res);

方法五简写࿱

你可能感兴趣的:(笔记,JS高级,vue.js,前端)