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);