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]