ES14(ES2023) 数组上新增的新特性、新功能

2023-10-22  本文已影响0人  keknei
toSorted

toSortedsort方法一样,都是排序的,但是toSorted可以返回一个全新的数组,而不是在原数组上进行操作

{
  let arr = [{name:"张三",age:20},{name:"李四",age:112},{name:"王五",age:18}];
  // console.log(arr === arr.sort()); // true
  // console.log(arr === arr.toSorted()); // false  返回一个全新的数组

  // 用toSorted降序排序
  let sortedArr = arr.toSorted((a,b)=>{
    return b.age - a.age;
  });
  console.log(sortedArr); // [{name:"李四",age:112},{name:"张三",age:20},{name:"王五",age:18}]
}
toReversed

toReversedreverse方法一样,都是反转的,但是toReversed可以返回一个全新的数组,而不是在原数组上进行操作

{
  let arr = [1,2,3,4,5,6,7,8,9,10];
  // 用toReversed降序排序
  let reversedArr = arr.toReversed();
  console.log(reversedArr); // [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
}
with

根据某个索引修改单个元素,不改变原数组,返回一个全新的数组,第一参数是索引值,第二个是设置修改的值

{
  let arr = [1,2,3,4,5,6,7,8,9,10];
  // arr[2] = 1; 会修改原数组
  // 用with修改数组某个值
  let withArr = arr.with(1, "张三");
  console.log(arr,withArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, '张三', 3, 4, 5, 6, 7, 8, 9, 10]
}
toSpliced

splice方法功能一样,根据索引删除或者添加元素,但是不改变原数组,返回一个全新的数组

{
  let arr = [1,2,3,4,5,6,7,8,9,10];
  let splicedArr = arr.toSpliced(2,1,"a","b");
  console.log(splicedArr); // [1, 2, 'a', 'b', 4, 5, 6, 7, 8, 9, 10]
}
findLast

从数组中获取最后一个匹配元素的实例。如果没有找到匹配的元素,则返回undefined
第一个参数传回调函数callbackFn,可接受三个参数item,index,arr

{
  let list = [1,2,3,4,5,6,7,8,9,10];
  let el = list.findLast((item,index,arr)=>item%2 === 1);
  console.log(el); // 9
}
findLastIndex

findLast一样,只是findLastIndex查找的不是元素,而是下标

{
  let list = [1,2,3,4,5,6,7,8,9,10];
  let el = list.findLastIndex((item,index,arr)=>item%2 === 1);
  console.log(el); // 8
}
上一篇 下一篇

猜你喜欢

热点阅读