除了数组索引之外,我还想使用一个特定的字符串,
我是这样做的
var array = new Array();
$(document).ready(function(){
array = addToArray();
console.log("array size " + array.length);
});
function addToArray(){
var i = 0;
var tmpArray = new Array();
while(i<10){
if(i>9){
addToArray();
i++;
}
else{
tmpArray["elem"+i] = "i";
console.log(tmpArray["elem"+i]); // It prints out!!!
i++;
}
}
console.debug(tmpArray);
return tmpArray;
}
当我打印出 tmpArray 时,它是空的。大小也为 0。当我从数组索引中删除“elem”时,它可以正常工作。我该怎么办?
这是一个真实的例子:http://jsfiddle.net/dfg3x/
最佳答案
JavaScript 没有像 PHP 和其他一些语言那样的字符串数组键。您所做的是将名为 elem + i
的属性添加到 tmpArray
对象。它不会影响数组的 .length
属性,即使该属性存在并且可以访问,并且不能通过 .pop() 等数组方法访问, .shift()
也许您应该将 tmpArray
声明为对象文字,因为您似乎没有将它与任何数字键一起使用。
function addToArray() {
var i = 0;
// Make an object literal
var tmpObj = {};
while(i<10) {
if(i>9) {
addToArray();
i++;
}
else {
tmpObj["elem"+i] = "i";
console.log(tmpObj["elem"+i]); //it prints out !!!
i++;
}
}
console.debug(tmpObj );
return tmpObj ;
}
关于javascript - JavaScript 数组中的字符串索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10326635/