微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数组方法-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,3,4,5,6,7,8,9,10));
//结果:55

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐