JavaScript数组 : 了解减少功能

句法

arr.reduce(callbackFunction, [initialValue])

什么是减少做?

减少是通过阵列循环函数.

操作可以在阵列上通过回调函数来执行.

在操作的阵列上的端, 减少返回单个值

可以使用减少, 例如, 总计购物车

例

  让ARR = [1,2,3,4,5];
  arr.reduce( (累加器, 当前值, CURRENTINDEX, 排列) => { 
      //一些操作;
      返回的东西;
  });

 

回调函数

回调函数被调用用于阵列中的每个元件, 传递 4 这是通过精简函数传递参数.

这些 4 参数则可以在回调函数中使用.

有四个参数

  1. 累加器 – 如果提供在第一循环或初始值的阵列的第一个元素. 那么前一个循环的返回值.
  2. 当前值 – 阵列中的当前元素. 从数组中的第二个元素开始,即. 到达[1], 当未传递初始值参数时. 如果传递初始值参数,则当前值从数组 arr 中的第一个元素开始[0].
  3. CURRENTINDEX – 当前元素的索引.
  4. 排列 – 整个阵列.

工作实例

让ARR = [1,2,3,4,5];

arr.reduce(
  (累加器, 当前值, CURRENTINDEX, 排列) => {
    的console.log(`累加器 (在第 1 个循环中, 累加器是 arr[0], 那么它就是上一个循环的返回值): ${累加器}`);
    的console.log(`CurrentValue的 (循环遍历数组, 从 arr 开始[1]): ${当前值}`);
    的console.log(`CURRENTINDEX: ${CURRENTINDEX}`);
    的console.log(`阵列: ${排列}`);
    的console.log('---');
    回累加器 + 当前值;
  }
);

产量

累加器 (在第 1 个循环中, 累加器是 arr[0], 那么它就是上一个循环的返回值): 1
当前值 (循环遍历数组, 从 arr 开始[1]): 2
CURRENTINDEX: 1
排列: 1,2,3,4,5
---
累加器 (在第 1 个循环中, 累加器是 arr[0], 那么它就是上一个循环的返回值): 3
当前值 (循环遍历数组, 从 arr 开始[1]): 3
CURRENTINDEX: 2
排列: 1,2,3,4,5
---
累加器 (在第 1 个循环中, 累加器是 arr[0], 那么它就是上一个循环的返回值): 6
当前值 (循环遍历数组, 从 arr 开始[1]): 4
CURRENTINDEX: 3
排列: 1,2,3,4,5
---
累加器 (在第 1 个循环中, 累加器是 arr[0], 那么它就是上一个循环的返回值): 10
当前值 (循环遍历数组, 从 arr 开始[1]): 5
CURRENTINDEX: 4
排列: 1,2,3,4,5
---

 

提供初始值

指定的第二个参数 (初始值) 在reduce函数中将导致initialValue作为第一个循环的累加器参数传入.

请注意,第一个循环的当前值现在从数组的第一个元素开始

工作实例

  让ARR = [1,2,3,4,5];

  arr.reduce(
  (累加器, 当前值, CURRENTINDEX, 排列) => {
    的console.log(`累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): ${累加器}`);
    的console.log(`CurrentValue的 (循环遍历数组, 从 arr 开始[0]): ${当前值}`);
    的console.log(`CURRENTINDEX: ${CURRENTINDEX}`);
    的console.log(`阵列: ${排列}`);
    的console.log('---');
    回累加器 + 当前值;
  }, 0
);

产量

累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): 0
当前值 (循环遍历数组, 从 arr 开始[0]): 1
CURRENTINDEX: 0
排列: 1,2,3,4,5
---
累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): 1
当前值 (循环遍历数组, 从 arr 开始[0]): 2
CURRENTINDEX: 1
排列: 1,2,3,4,5
---
累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): 3
当前值 (循环遍历数组, 从 arr 开始[0]): 3
CURRENTINDEX: 2
排列: 1,2,3,4,5
---
累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): 6
当前值 (循环遍历数组, 从 arr 开始[0]): 4
CURRENTINDEX: 3
排列: 1,2,3,4,5
---
累加器 ( 在第 1 个循环中, 这是初始值, 然后是上一个循环的返回值): 10
当前值 (循环遍历数组, 从 arr 开始[0]): 5
CURRENTINDEX: 4
排列: 1,2,3,4,5
---