js数组中的字符串索引

时间:2012-04-26 03:00:08

标签: javascript arrays indexing

我想在数组索引

之外添加一个特定字符串

我这样做

 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/

1 个答案:

答案 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 ;
}