gpt4 book ai didi

javascript - 防止数组在单击时更改

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

我试图在每次用户单击数组值时触发对它的操作,但无论出于何种原因,即使该数组位于函数之外,它仍然会更改它的值。有人知道如何确保外部数组的值不受影响吗?预先感谢大家的时间和帮助。

jQuery:

var nums = new Array('one', 'two', 'three', 'four', 'five');

$('.nums')on('click', function() {
var numId = $(this).attr('id');
var newNums = nums;
var num = newNums.indexOf('#'+numId);
newNums.length = num + 1;

console.log('#'+numId, nums, newNums, num);
});

最佳答案

您需要使用 slice() 按值复制数组,当前的赋值引用了 nums 数组,并且每当函数内的值发生更改时初始数组受到影响:

var nums = new Array('one', 'two', 'three', 'four', 'five');

$('.nums')on('click', function() {
var numId = $(this).attr('id');
var newNums = nums.slice();
var num = newNums.indexOf('#'+numId);
newNums.length = num + 1;

console.log('#'+numId, nums, newNums, num);
});

关于javascript - 防止数组在单击时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44627887/

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