根据选择列表过滤数组并删除不起作用的字段

时间:2019-04-10 21:46:24

标签: javascript html arrays

请帮助我如何更改代码,以便能够基于下拉选择来过滤数组,然后从数组中删除字段。

代码在此处上传:http://jsfiddle.net/x8e3rvcj

如果我选择了第一个和第二个列表项,但是在选择了第三个/第四个列表后重新设置了空数组,则可以正常工作,这似乎是因为删除了结果数组中的一个字段。 如果我删除了删除部分,则选择工作正常。

删除部分似乎引起了问题:

finalArray = jQuery.each(finalArray, function(arrElem, arrValue) {
Delete arrValue.MID; 
});

谢谢

1 个答案:

答案 0 :(得分:0)

经过一天的搜索,我发现在javascript中复制/编辑数组会影响范围内该数组的任何副本。 这称为变异。

解决方案:不要简单地复制数组而是“深度”复制它:

let copyArray = JSON.parse(JSON.stringify(valueArr)); //... etc.

感谢谁发明了这个令人讨厌的概念,我为此花了更多时间在代码部分上!