gpt4 book ai didi

Javascript splice 方法从两个数组中删除值

转载 作者:行者123 更新时间:2023-12-02 19:09:38 29 4
gpt4 key购买 nike

Javascript(使用 jQuery):

var paragraphs = [
['This is my first paragraph content of the first array', 'This is my second paragraph content of the first array', 'This is my third paragraph content of the first array'],
['This is my first paragraph content of the second array', 'This is my second paragraph content of the second array', 'This is my third paragraph content of the second array']
],
text_box_value,
unused_paragraphs = null;

$(document).ready(function(){
$('input#text_box').keyup(function(){
text_box_value = $(this).val();
});

$('input#submit_button').click(function(){
if(unused_paragraphs === null) {
unused_paragraphs = paragraphs;
}

for(var i = 0; i < unused_paragraphs.length; i++) {
if(unused_paragraphs[i].length == 0)
unused_paragraphs[i] = paragraphs[i];

while(unused_paragraphs[i].length != 0) {
var rand = Math.floor(Math.random() * unused_paragraphs[i].length);
if(unused_paragraphs[i][rand].search(text_box_value) !== -1) {
$("#paragraphs_container").append('<p>' + unused_paragraphs[i][rand] + '</p>');
break;
}

unused_paragraphs[i].splice(rand, 1);
}
}

console.log(unused_paragraphs);
console.log(paragraphs);

});

});

我的问题是为什么当我在 unused_pa​​ragraphs 变量上使用 splice 方法时,它也会从 paragraphs 变量中删除值

稍后编辑 JSFiddle

最佳答案

javascript 对象/数组通过引用存储。

如果你想要一份副本,这是一个技巧:

if(typeof unused_paragraphs == "undefined") {
var unused_paragraphs = [];
for(var i = 0; i<paragraphs.length; i++) {
unused_paragraphs[i] = paragraphs[i].slice(0);
}
}

unused_paragraphs[i] = paragraphs[i].slice(0);

关于Javascript splice 方法从两个数组中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13912270/

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