總結下工作中常用的數據處理操作

場景:求一個二維數組中某個key值的和,比如合計價格,數量等

數據格式[{x: 1}, {x:2}, {x:3}]--------------------->1+2+3=6
方法一: 原生

function sum(arr) {
  var len = arr.length;
  if(len == 0){
    return 0;
  } else if (len == 1){
    return arr[0];
  } else {
    return arr[0] + sum(arr.slice(1));
  }
}

方法二:reduce()

    test() {
      var valeurInitiale = 10; //初始值
      let arr = [{ price: 1 }, { price: 20 }, { price: 22 }, { price: 30 }];
      let sum = arr.reduce(
        (accumulateur, valeurCourante) => accumulateur + valeurCourante.price,
        valeurInitiale
      );
      console.log(sum); //85
    }

場景:嵌套數組轉一維數組

數據格式[[0, 1], [2, 3], [4, 5]]------------------>[0,1,2,3,4,5]

方法一:flat()

console.log([1 ,[2, 3]].flat()); // [1, 2, 3]
// 指定轉換的嵌套層數
console.log([1, [2, [3, [4, 5]]]].flat(2)); // [1, 2, 3, [4, 5]]
// 不管嵌套多少層
console.log([1, [2, [3, [4, 5]]]].flat(Infinity)); // [1, 2, 3, 4, 5]

方法二:reduce()

var applati = [[0, 1], [2, 3], [4, 5]].reduce(function(a, b) {
    return a.concat(b);
});
console.log(applati) //[0,1,2,3,4,5]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章