gpt4 book ai didi

javascript - 将元素插入数组会导致前面的元素被修改

转载 作者:行者123 更新时间:2023-12-03 03:07:48 24 4
gpt4 key购买 nike

我正在将元素插入数组,问题是每次我插入一个新元素时,所有先前的元素都会等于最后一个元素。我遇到过this post ,但我仍然不知道如何解决该问题

请参阅这个 jsFiddle。正如帖子所建议的,我将 instance 的声明移至 for 循环,但我仍然遇到同样的问题。也就是说,代码的输出如下所示:[46, 46]。但是,我希望它是 [23, 46]

我真的要疯了。有什么想法吗???

$(document).ready(function() {
var json = {'name': 'Anna', 'counter': 1}
var counters = [23, 46];
var result = [];
$(counters).each(function() {

var instance = json;
instance.counter = this;
result.push(instance);
});

$(result).each(function(){
$('#test').append('<li>' + this.counter + '</li>');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id = 'test'>

</ul>

最佳答案

您应该使用 var instance = jQuery.extend(true,{},json); 进行深度复制

$(document).ready(function() {
var json = {'name': 'Anna', 'counter': 1}
var counters = [23, 46];
var result = [];
$(counters).each(function() {

var instance = jQuery.extend(true,{},json);
instance.counter = this;
result.push(instance);
});

$(result).each(function(){
$('#test').append('<li>' + this.counter + '</li>');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id = 'test'>

</ul>

关于javascript - 将元素插入数组会导致前面的元素被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47090648/

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