gpt4 book ai didi

javascript - 在现有数组的中间插入一个数组。保持现有引用不变

转载 作者:行者123 更新时间:2023-11-30 12:38:12 26 4
gpt4 key购买 nike

假设我有两个数组:

var numbers = [1,3,5,7,9,11];
var letters = ['a','b','c'];

然后说我有另一个对数字数组的引用:

var anotherRef = numbers;

我想以修改现有数组的方式将一个插入另一个,以便在操作之后,anotherRef === numbers

如果我不需要维护原始数组,我会这样做:

function insert(target, source, position) {
return target.slice(0, position).concat(source, target.slice(position));
}

问题是,在用这个方法插入之后,两个引用指向不同的数组:

numbers = insert(numbers, letters, 3);
numbers !== anotherRef; // sadly, true.

如果我要添加到数组的末尾,我可以这样做,这有点巧妙:

function insertAtEnd(target, source) {
Array.prototype.push.apply(target, source);
}

有没有一种很好的方法可以在 JS 数组中就地插入多个值?

最佳答案

您似乎在寻找 splice方法:

function insert(target, source, position) {
Array.prototype.splice.apply(target, [position, 0].concat(source));
return target;
}
var numbers = [1,3,5,7,9,11];
var letters = ['a','b','c'];

insert(numbers, letters, 3);
console.log(numbers);
>> [1, 3, 5, "a", "b", "c", 7, 9, 11]

关于javascript - 在现有数组的中间插入一个数组。保持现有引用不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25389207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com