ES6入门摘入

JS数组map,every,reduce方法以及ES6三点扩展运

2018-08-21  本文已影响197人  丶灰太狼他叔

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方法

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三点扩展运算符

            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;
      }

上一篇 下一篇

猜你喜欢

热点阅读