数组方法-reduce 和 ES6扩展运算符

时间:2019-09-19
本文章向大家介绍数组方法-reduce 和 ES6扩展运算符,主要包括数组方法-reduce 和 ES6扩展运算符使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.reduce方法介绍

应用场景1:计算数组中所有值总和

var numbers = [1, 2, 3];
var sumVal = numbers.reduce(function(sum, number) {
  return sum + number;
  //0是sum的初始化值
}, 0);
console.log(sumVal);

应用场景2:将对象数组中对象的某个属性抽离到另外一个数组中

var colors = [
  { color: "red" }, 
  { color: "green" }, 
  { color: "black" }
];
var colorsNew = colors.reduce(function(colorArr, colors) {
  colorArr.push(colors.color);
  return colorArr;
}, []);
console.log(colorsNew);
//结果:["red", "green", "black"]

应用场景3:判断字符串中括号是否对称

function balanceParents(string) {
  return !string.split("").reduce(function(previous, char) {
    if (char == "(") {
      return ++previous;
    }
    if (char == ")") {
      return --previous;
    }
    return previous;
  }, 0);
}
console.log(balanceParents("(())aaadsd))"));//结果:false

2.扩展运算符详细介绍

应用场景1:将单独的数值组成数组返回

//使用"..."(扩展运算符)自动将传入的参数组成数组:numbers
function addNumber(...numbers) {
  return numbers.reduce((sum, item) => {
    return sum + item;
  }, 0);
}
console.log(addNumber(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
//结果:55

应用场景2:组合多个数组 

var defaultNum = [1, 2, 3, 4, 5];
var myNum = [10, 20];
var yourNum = [9, 8, 7];
console.log([11, 22, 33, ...defaultNum, ...myNum, ...yourNum]);
//结果: [11, 22, 33, 1, 2, 3, 4, 5, 10, 20, 9, 8, 7]

原文地址:https://www.cnblogs.com/yxkNotes/p/11550262.html