我想在数组索引
之外添加一个特定字符串我这样做
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/
答案 0 :(得分:8)
JavaScript没有像PHP和&amp ;;这样的字符串数组键。其他一些语言。您所做的是将名为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 ;
}