ES14新增数组操作

82 阅读1分钟

1. toSorted()

before:

const numbers = [31415];  
const sorted = [...numbers].sort((a, b) => a - b);  
console.log(sorted); // [1, 1, 3, 4, 5]  
console.log(numbers); // [3, 1, 4, 1, 5]

now:

const numbers = [31415];  
const sorted = numbers.toSorted((a, b) => a - b);  
console.log(sorted); // [1, 1, 3, 4, 5]  
console.log(numbers); // [3, 1, 4, 1, 5]

2. toReversed()

before:

const numbers = [12345];  
const reversed = numbers.reverse();  
console.log(reversed); // [5, 4, 3, 2, 1]  
console.log(numbers); // [5, 4, 3, 2, 1]

now:

const numbers = [12345];  
const reversed = numbers.toReversed();  
console.log(reversed); // [5, 4, 3, 2, 1]  
console.log(numbers); // [1, 2, 3, 4, 5]

3. toSpliced()

const items = [12345];  
const newItems = items.toSpliced(2167);  
console.log(newItems); // [1, 2, 6, 7, 4, 5]  
console.log(items); // [1, 2, 3, 4, 5]

4. 从末尾开始查找数组

const numbers = [12345678910];  
const lastEven = numbers.findLast(n => n % 2 === 0);  
console.log(lastEven); // 10(正确)

5. 数组的with()方法

before:

const arr = [12345];  
const newArr = [...arr];  
newArr[2] = 6;  
console.log(newArr); // [1, 2, 6, 4, 5]  
console.log(arr); // [1, 2, 3, 4, 5]

now:

const arr = [12345];  
const newArr = arr.with(26);  
console.log(newArr); // [1, 2, 6, 4, 5]  
console.log(arr); // [1, 2, 3, 4, 5]