程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

2023:Js中新增四个不修改原数组的方法

balukai 2025-03-25 10:56:38 文章精选 6 ℃

JavaScript 引入了在不改变原始数组的情况下更改元素排序反转拼接数组的强大功能,从而赋予其不变性。

即允许对数组进行操作时,不改变原数组,而返回一个原数组的拷贝。

搜索:《前端押题宝典》。字节、阿里内的前端大佬,联合推出的涵盖前端各个领域的高频面试题目。

with()

with(index, value)对应splice(index, 1, value),用来将指定位置的成员替换为新的值。

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"];

toSorted()

toSorted()对应sort(),用来对数组成员排序。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]

toReversed()

toReversed()对应reverse(),返回一个新数组,其中元素的顺序相反。

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]

toSpliced()

toSpliced()对应splice(),用来在指定位置,删除指定数量的成员,并插入新成员。

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"]
最近发表
标签列表