js数组方法

数组去重

ES6 新增数据结构 Set

let arr = [...new Set([1,5,8,4,5,8,7,8])];
console.log(arr);  //  [1, 5, 8, 4, 7]

ps:ES5之前得方法很多,这儿不赘述,主要是这个新的数据结构

数组扁平化

采用闭包

function arrfun () {
  let result = [];
  return function arrFlat(arr) {
      arr.forEach(e => {
          if (e instanceof Array) {
              arrFlat(e);
          } else {
              result.push(e);
          }
      });
      return result;
  }
}

let res = arrfun();
console.log(res([1,[5,8,[4,5,8],7],8]));

ES6新增方法


flat(n)    // n表示扁平化层级

[1,[5,8,[4,5,8],7],8].flat();      // [1, 5, 8, [4, 5, 8], 7, 8]
[1,[5,8,[4,5,8],7],8].flat(2);     // [1, 5, 8, 4, 5, 8, 7, 8]

js数组

  • 改变原数组
    push()/pop()/unshift()/sort()/reverse()/splice()
var arr = [1,4,5,8,6,2,5,6,3,5];
arr.sort();
console.log(arr);
var arr = [1,4,5,8,6,2,5,6,3,5];
arr.sort(function(a,b) {
  return Math.random()-0.5;
});
console.log(arr);
var arr = [1,4,5,8,6,2,5,6,3,5];
arr.reverse();
console.log(arr);
  • 不改变原数组
    concat()/join()/toString()/slice()

  • ES6新增
    find()/findIndex()/flat()/fill(value,start,end)/copyWithin(target,start,end)/from()

你可能感兴趣的:(javascript)