Javascript json对象推送是否使用循环中的最后一项覆盖所有项?
在第一次迭代中,Javascript json对象推送是否使用循环中的最后一项覆盖所有项?,javascript,json,each,Javascript,Json,Each,在第一次迭代中,options具有MAB380-01 但是在第二次迭代之后,选项有两个MAB380-02 Firefox和Chrome给了我正确的结果,但不是IE。var options=[]; <option value='MAB380-01'>MAB380-01</option> <option value='MAB380-02'>MAB380-02</option> $(b).每个功能(a){ 调试器; s+=''+b[a].材料+'' v
options
具有MAB380-01
但是在第二次迭代之后,
选项有两个MAB380-02
Firefox和Chrome给了我正确的结果,但不是IE。var options=[];
<option value='MAB380-01'>MAB380-01</option>
<option value='MAB380-02'>MAB380-02</option>
$(b).每个功能(a){
调试器;
s+=''+b[a].材料+''
var item=新对象();
item.name=b[a]。物料;
item.value=b[a]。物料;
item.checked=false;
选项。推送(项目);
});
console.log(选项);
这些代码可以在Chrome、Firefox和IE11上运行。我没有发现任何错误。完全没关系@MahbubMoon这很奇怪,这不是我在IE 11中得到的。每个回调都有两个参数,第一个是索引,第二个是值。修改自@Mahbub Moon。尝试无法在IE11上重现的方法尝试在每个回调中控制台日志值
<option value='MAB380-01'>MAB380-01</option>
<option value='MAB380-02'>MAB380-02</option>
var options = [];
$(b).each(function (a) {
debugger;
s += '<option value=\'' + b[a].Material + '\'>' + b[a].Material + '</option>'
var item = new Object();
item.name = b[a].Material;
item.value = b[a].Material;
item.checked = false;
options.push(item);
});
console.log(options);