Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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/12.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 基于具有新键和值的列表向数组添加新对象_Javascript_Arrays_Object_Filter_Push - Fatal编程技术网

Javascript 基于具有新键和值的列表向数组添加新对象

Javascript 基于具有新键和值的列表向数组添加新对象,javascript,arrays,object,filter,push,Javascript,Arrays,Object,Filter,Push,我有一个复选框,可以从列表中选择对象。要使选择可识别,我希望使用选定值的标签向选定对象添加新的keyvalue 我尝试了以下方法: var checkCheckboxOnOff = [{"fieldName":"Categorie__c","picklistValue":"Techniek"},{"fieldName":"Regio__c","picklistValue":"Midden"}] 我通过CheckBoxOnOff循环,从列表中选择对象: opleidingfilter = ser

我有一个复选框,可以从列表中选择对象。要使选择可识别,我希望使用选定值的标签向选定对象添加新的keyvalue

我尝试了以下方法:

var checkCheckboxOnOff = [{"fieldName":"Categorie__c","picklistValue":"Techniek"},{"fieldName":"Regio__c","picklistValue":"Midden"}]
我通过CheckBoxOnOff循环,从列表中选择对象:

opleidingfilter = serverList.filter(function(item) { return item[checkCheckboxOnOff[i].fieldName] == checkCheckboxOnOff[i].picklistValue});
在列表中循环时,我向选定对象添加一个键和值,并将它们推入过滤器数组:

    opleidingfilter.forEach(function(n) {n.arrayPicklist = checkCheckboxOnOff.fieldName});
 Array.prototype.push.apply(filter,opleidingfilter[i]); 
我的问题是,当我两次选择一个对象时,两个选定的对象都会用最后一个键和值进行更新。我的期望是,当两次选择一个对象时,我最终得到两个不同的值

例如: 第一选择:

[{"Id":"120"},{"Id":"121"}]
第二选择

[{"Id":"123"},{"Id":"121"}]
预期:

[{"Id":"120","arrayPicklist":"Categorie__c"},
{"Id":"121","arrayPicklist":"Categorie__c"},{"Id":"123","arrayPicklist":"Regio__c"},
{"Id":"121","arrayPicklist":"Regio__c"}]
当前结果

[{"Id":"120","arrayPicklist":"Categorie__c"},
    {"Id":"121","arrayPicklist":"Regio__c"},{"Id":"123","arrayPicklist":"Regio__c"},
    {"Id":"121","arrayPicklist":"Regio__c"}]
fiddle中的值似乎未定义请参见:

您的问题在

n.arrayPicklist = checkCheckboxOnOff.fieldName
您试图访问数组上的fieldname属性,而不是CheckBoxOnOff数组中的索引

用这个替换那行

opleidingfilter.forEach(function(n,i) {n.arrayPicklist = checkCheckboxOnOff[i].fieldName});
这样,您就可以访问迭代器中的index属性,并可以访问checkboxonoff数组中的每个项