Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理重复元素&;在Javascript或Jquery中将它们放入数组_Javascript_Arrays - Fatal编程技术网

处理重复元素&;在Javascript或Jquery中将它们放入数组

处理重复元素&;在Javascript或Jquery中将它们放入数组,javascript,arrays,Javascript,Arrays,我有一个简单的复选框函数,它的作用是一旦选中复选框,它就会将所选元素保存到数组a。并将数组A推入函数外部的数组B,这意味着每次我都使用复选框,复制的数据将保存在数组B中,但我试图使它看起来像数组B已经具有从数组A推送的相同元素id,然后不添加它。有什么简单的方法可以解决这个问题吗 JS 如果每次单击复选框时都试图存储有关每个复选框的某种数据,那么最好使用对象。否则,每次要更新存储阵列时,都必须遍历存储阵列(以检查该元素是否已存在) 如果运行下面的代码段,您将看到每次单击都会更新对象 const

我有一个简单的复选框函数,它的作用是一旦选中复选框,它就会将所选元素保存到
数组a
。并将
数组A
推入函数外部的
数组B
,这意味着每次我都使用复选框,复制的数据将保存在
数组B
中,但我试图使它看起来像
数组B
已经具有从
数组A
推送的相同
元素id
,然后不添加它。有什么简单的方法可以解决这个问题吗

JS


如果每次单击复选框时都试图存储有关每个复选框的某种数据,那么最好使用对象。否则,每次要更新存储阵列时,都必须遍历存储阵列(以检查该元素是否已存在)

如果运行下面的代码段,您将看到每次单击都会更新对象

const checkboxState={}
函数updateCheckboxState({target:checkbox}){
checkboxState[checkbox.id]={
id:checkbox.id,
值:checkbox.checked
}
//删除日志,仅在此处显示行为
console.log(checkboxState)
}
$('.check')。在('click',updateCheckboxState)

1.
2.
3.

4
每次迭代都要重新分配
检查数组
,它从来都不是数组,它只是一个对象,除非没有要进行的迭代,在这种情况下,它是一个空数组,这不是很有用。
最后一次检查元素
是否缓存每个已检查的复选框?是否有任何理由从
last\u check\u elements
中删除数据?@CertainPerformance我还有其他功能处理
last\u check\u elements
还有什么要做的吗?@Damon,我还有其他一些函数处理
last\u check\u元素
,这些元素应该放在任何函数的外部。我不确定你们到底想在那个里做什么。您可能应该首先澄清(或修复)您当前的代码
var last_check_elements = [];

function whatever(){
       $('.check').on('click', function() {

                  var checkArray = [];
                  $('.check').each(function() {
                    checkArray = {id: $(this).attr('id'), value: $(this).prop('checked')};

                   last_check_elements.push(checkArray);
                  });
}