JavaScript的不变阵列革命。
#javascript #网络开发人员 #编程 #news

javaScript引入了更改元素,排序,反向和剪接数组的强大功能,而无需更改原件,从而使其无关紧要。

四种新方法允许您更改数组而无需先创建副本。

新方法是:

1.与()

with()方法创建一个副本,并允许在特定索引上更改值。它产生一个新数组,其中指定索引处的元素被提供的值代替。

const arr = ["I", "B", "R", "A", "H", "I", "M"];
console.log(arr.with(2, "b")); // ["I", "B", "b", "A", "H", "I", "M"]
// replace the second index with the provided value "b"
console.log(arr); // ["I", "B", "R", "A", "H", "I", "M"];

2. TOSORTED()

toSorted()方法返回一个全新的数组,该数组中的元素按上升顺序排列。

const arr = ["I", "B", "R", "A", "H", "I", "M"];
console.log(arr.toSorted()); // ['A', 'B', 'H', 'I', 'I', 'M', 'R']
console.log(arr); // ["I", "B", "R", "A", "H", "I", "M"];


const numbers = [1, 10, 21, 2];
console.log(numbers.toSorted((a, b) => a - b)) //[1, 2, 10, 21]

3. Toreversed()

toReversed()方法返回带有元素以相反顺序的新数组。

const arr = ["I", "B", "R", "A", "H", "I", "M"];
console.log(arr.toReversed()); // ['M', 'I', 'H', 'A', 'R', 'B', 'I']

const numbers = [1, 10, 21, 2];
console.log(numbers.toReversed()) //[2, 21, 10, 1]

4. tospliced()

toSpliced()方法返回一个新数组,并在给定的索引中删除和/或替换了一些元素。

const arr = ["I", "B", "R", "A", "H", "I", "M"];
console.log(arr.toSpliced(3, 3, "BAG")); // ['I', 'B', 'R', 'BAG', 'M']

const months = ["Jan", "Mar", "Apr", "May"];
console.log(months.toSpliced(1, 0, "Feb")) // ["Jan", "Feb", "Mar", "Apr", "May"]

无需先用[...arr]创建数组的副本,然后再修改。

不幸的是,Firefox目前在浏览器兼容性方面缺乏对这四种方法的支持。