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目前在浏览器兼容性方面缺乏对这四种方法的支持。