ES13新特性
ES13新增语法
1.at函数 可以使用at函数来索引元素,支持数组和字符串
传正数从前往后找,下标从0开始。传负数从后往前找,下标从-1开始
const arr = ['a', 'b', 'c', 'd'];
// 第一个元素
console.log(arr.at(0)); // a
// 倒数第一个元素
console.log(arr.at(-1)); // d
// 倒数第二个元素
console.log(arr.at(-2)); // c
const str = 'randy';
// 第一个元素
console.log(str.at(0)); // r
// 倒数第一个元素
console.log(str.at(-1)); // y
// 倒数第二个元素
console.log(str.at(-2)); // d
const love='love'
// 第一个元素
console.log(love.at(0)); // l
// 正数第二个元素
console.log(love.at(1)); // o
// 正数第三个元素
console.log(love.at(2)); // v
// 正数第四个元素
console.log(love.at(3)); // e
ES14新特性
ES14新增语法
1.findLast() findLastIndex()
const letters = [
{ value: 'z' },
{ value: 'y' },
{ value: 'x' },
{ value: 'y' },
{ value: 'z' },
];
倒序查找 这两个函数都会从数组的末端开始寻找某个满足条件的元素。
const found = letters.findLast((item) => item.value === 'y');
const foundIndex = letters.findLastIndex((item) => item.value === 'y');
console.log(found); // { value: 'y' }
console.log(foundIndex); // 3
2.toSorted()
sort方法的复制版本,区别就是sort是修改原数组,而toSorted是返回新数组
const arr = [1, 3, 5, 2, 8];
const newArr = arr.sort();
console.log("原数组:", arr); //[1, 2, 3, 5, 8
console.log("新数组:", newArr);//[1, 2, 3, 5, 8]
const arred = [1, 3, 5, 2, 8];
const newArred = arred.toSorted();
console.log("原数组:", arred);//[1, 3, 5, 2, 8]
console.log("新数组:", newArred);//[1, 2, 3, 5, 8]
3.toReversed()
reverse方法的复制版本,区别就是reverse是修改原数组,而toReversed是返回新数组
const arrver = [1, 3, 5, 2, 8];
const newArrver = arrver.reverse();
console.log("原数组:", arrver);//[8, 2, 5, 3, 1]
console.log("新数组:", newArrver);//[8, 2, 5, 3, 1]
const arrverd = [1, 3, 5, 2, 8];
const newArrd = arrverd.toReversed();
console.log("原数组:", arrverd);//[1, 3, 5, 2, 8]
console.log("新数组:", newArrd);//[8, 2, 5, 3, 1]
4.toSpliced()
toSpliced与splice区别就很大了。splice是截取原数组的数据,并返回截取出来的数据。toSpliced是对原数组的副本进行操作,然后返回被截取完后的新数组,并不会修改原数组。
toSpliced并不会影响原数组。返回的是截取后的数组
const arrSpliced = [1, 3, 5, 2, 8];
const newArrSpliced = arrSpliced.splice(1, 2);
console.log("原数组:", arrSpliced);//[1, 2, 8]
console.log("新数组:", newArrSpliced);//[3, 5]
const arrEs = [1, 3, 5, 2, 8];
const newArrEs = arrEs.toSpliced(1, 2);
console.log("原数组:", arrEs);//[1, 3, 5, 2, 8]
console.log("新数组:", newArrEs);//[1, 2, 8]
5.with有点类似我们通过[index]来修改数组,区别就是with不是修改原数组,而是返回整个新数组
const arrwith = [1, 3, 5, 2, 8];
arrwith[1] = 10;
console.log("原数组:", arrwith);//[1, 10, 5, 2, 8]
const arrEsWith = [1, 3, 5, 2, 8];
const newArrWith = arrEsWith.with(1, 10);
console.log("原数组:", arrEsWith);//[1, 3, 5, 2, 8]
console.log("新数组:", newArrWith);//[1, 10, 5, 2, 8]
后续有新增会加进去的 持续关注哈