2012-04-26 67 views
3

我希望把特定的字符串中除了一些对数组的索引,字符串指数在JS数组

我作出这样

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/

回答

8

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 ; 
} 
+0

Yeees,物业在那里!谢谢 – palAlaa 2012-04-26 03:05:32