gpt4 book ai didi

javascript - 如何在不重新索引数组键的情况下在 JQuery 中添加和删除数组

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:26 25 4
gpt4 key购买 nike

当我点击任何复选框而不是主数组中的新数组追加(推送)时,我有一个复选框列表。如果取消选中而不是删除但不更改当前数组的任何索引。

解释:-

喜欢:- 当我点击数组中的第一个复选框时喜欢

0: ["2"]

喜欢:- 当我点击第二个复选框而不是数组时

0: ["2"]
1: ["3"]

喜欢 :- 当我点击四个复选框而不是数组时喜欢

0: ["2"]
1: ["3"]
2: ["5"]

如果我首先取消选中我需要的数组,那么在取消选中复选框之后

1: ["3"]
2: ["5"]

我再次点击第一个复选框而不是需要数组链接

1: ["3"]
2: ["5"]
3: ["2"]

不需要改变任何数组索引键

https://jsfiddle.net/tx63yjhg/

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" value="1" />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" />
<input type="checkbox" value="4" />
<input type="checkbox" value="5" />
<input type="checkbox" value="6" />
<input type="checkbox" value="7" />

<script type="text/javascript">
var values = [];
var new_value = [];

$("input").on("change", function()
{
var $this = $(this);

if ($this.is(":checked"))
{
var new_data = [$this.val()];
new_value.push(new_data);
}
else
{
//remove array when uncheck checkbox
}
console.log('new_value',new_value);
});
</script>

如何删除数组并重新添加?

最佳答案

我不确定您是否使用数组数组实现了相同的效果。您可以改为尝试使用如下所示的对象。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" value="1" />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" />
<input type="checkbox" value="4" />
<input type="checkbox" value="5" />
<input type="checkbox" value="6" />
<input type="checkbox" value="7" />

<script type="text/javascript">
var values = [];
var new_value = {};
var counter = 0;

$("input").on("change", function() {
var $this = $(this);

if ($this.is(":checked")) {
new_value[counter++] = [$this.val()];
} else {
Object.entries(new_value).forEach(([k,v]) => {
if(v.includes($this.val())) delete new_value[k];
});
}
console.log('new_value',new_value);
});
</script>

编辑

添加

new_value[counter++] = {id1: 100, id2: 200, "id3": 300,"value":474}; // e.g. object

删除

let valueToBeRemoved = 234; // e.g. value to be removed

Object.entries(new_value).forEach(([k,v]) => {
if(v.value === valueToBeRemoved) delete new_value[k];
})

编辑 2

for (var k in new_value) {
if(new_value[k].value === valueToBeRemoved) delete new_value[k];
}

关于javascript - 如何在不重新索引数组键的情况下在 JQuery 中添加和删除数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296364/

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