1、map方法
- 该方法返回一个新数组
- 不改变原数组
- 接收一个函数为参数
代码实例:
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
return item * item;
});
alert(arrayOfSquares); // 1, 4, 9, 16
2、every方法
- 用于检测数组中所有的元素是否都满足条件
- 一个不满足则返回false,全部满足返回true
代码实例:
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.every(checkAdult)) //false
3、reduce方法
- 该方法返回的是数组元素相加的和
- 第一个参数为计算方法,第二个参数为初始值
代码示例:
var numbers = [15.5, 2.3, 1.1, 4.7];
function getSum(total, num) {
return total + Math.round(num);
}
var totalNum = numbers.reduce(getSum,0)
console.log(totalNum) // 24
3、ES6三点扩展运算符
- 将一个数组转为用逗号分隔的参数序列
-
console.log(...[a, b, c])
结果为// a b c
代码示例1:
let add = (x, y) => x + y;
let numbers = [3, 45];
console.log(add(...numbers))//48
代码示例2(合并数组):
var arr1 = ['a', 'b'];
var arr2 = ['c'];
var arr3 = ['d', 'e'];
// ES5 的合并数组
arr1.concat(arr2, arr3);
// [ 'a', 'b', 'c', 'd', 'e' ]
// ES6 的合并数组
[...arr1, ...arr2, ...arr3]
// [ 'a', 'b', 'c', 'd', 'e' ]
更多示例:点这里
最后上一段elementUI上的示例代码
getSummaries(param) {
const { columns, data } = param;
// 上面一行代码等价于
// const columns = param.columns
// const data = param.data
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总价';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' 元';
} else {
sums[index] = 'N/A';
}
});
return sums;
}