我在使用以下代码时遇到了一些问题:
var tmpArray = new Array();
for(var n in fnlArray){
if(fnlArray[n] == largest.val){
alert(fnlArray[n] +"-"+ largest.val);
tmpArray[n] = fnlArray[n];
}
}
fnlArray内容是:
fnlArray['result1'] = 1; fnlArray['result2'] = 2; fnlArray['result3'] = 2; fnlArray['result4'] = 2; and largest.val = 2;
我遇到的问题是警报被解雇所以我希望最终得到tmpArray以及以下内容:
tmpArray['result2'] = 2; tmpArray['result3'] = 2; tmpArray['result4'] = 2;
但是数组(tmpArray)总是空的。这是在循环中动态地向数组添加项目的问题吗?
答案 0 :(得分:6)
var tmpArray = new Array();
应该是:
var tmpArray = {};
您的tmpArray
对象不是索引数组,因此您必须使用对象文字。
var tmpArray = {};
for(var n in fnlArray){
if(fnlArray[n] == largest.val){
tmpArray[n] = fnlArray[n];
}
}
alert(JSON.stringify(tmpArray)); //Prints: {"result2":2,"result3":2,"result4":2}