如何在不修改原始数组和创建副本的情况下替换数组元素?

时间:2016-08-16 13:07:57

标签: javascript arrays

我正在尝试创建一个接收数组作为参数的纯函数,现在我想替换给定索引处的元素而不修改提供的数组参数。

基本上我正在寻找这样的东西:

export const muFunc = (arr) => {
    return arr.replaceElementAt(1, 'myNewValue'); // This doesnt modify arr at all
}

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以利用Object.assign并执行以下操作:

const arr = [1, 2, 3, 4, 5];
const updatedArr = Object.assign([], arr, {1: 'myNewValue'});

console.log(arr); // [1, 2, 3, 4, 5]
console.log(updatedArr); // [1, "myNewValue", 3, 4, 5]

答案 1 :(得分:-1)

您可以使用地图功能来实现此目的

var arr = [1,2,3,4,5,6,7,89];

arr.map(function (rm) {
    if (rm == 2) {
        return 3
    } else {
        return rm
    }
})