2015-05-18 181 views
0

我想访问使用JS的多维数组中的元素。这似乎并不奏效。请帮助多维数组对象

var parsed = ""; 
var myObject = [{ 
    firstname: "Jane", 
    lastname: "Doe", 
    email: "[email protected]" 
}, { 
    firstname: "Ja", 
    lastname: "joe", 
    email: "[email protected]" 
}]; 
for (var prop in myObject) { 
    parsed += prop + ": " + myObject[prop] + "\n"; 
} 
alert(parsed); 
+0

必须循环阵列上,然后通过对象? –

+0

取决于你想要的,但为了得到一些有意义的输出(根据你的输入),你应该访问'myObject [prop] .firstname/lastname/email'等。 – amdixon

+0

如果它只是一维数组..我得到正确的响应。此代码抛出以下内容:0 [object Object] 1 [object Object] –

回答

0

你应该遍历数组和名称选择合适的属性:

var parsed = ""; 
var myObject = [{ 
    firstname: "Jane", 
    lastname: "Doe", 
    email: "[email protected]" 
    }, 
    { 
    firstname: "Ja", 
    lastname: "joe", 
    email: "[email protected]" 
    }, 
]; 
for(var item in myObject) 
{ 
    for (var prop in item) { 
    parsed += prop + ": " + item[prop] + "\n"; 
    } 
} 
0

您需要其他循环遍历数组元素。

var parsed = ""; 
var myObject = [{ 
    firstname: "Jane", 
    lastname: "Doe", 
    email: "[email protected]" 
}, 
{ 
    firstname: "Ja", 
    lastname: "joe", 
    email: "[email protected]" 
}, 
]; 
for (i = 0; i< myObject.length; i++){ 
    var myobj= myObject[i]; 
    for (var prop in myobj) { 
    parsed += prop + ": " + myobj[prop] + "\n"; 
} 
} 
alert(parsed); 

DEMO

0

这里是你的代码片段。
您的基本错误是myObject是对象的数组,让你在你使用此代码得到什么错误给定索引

var attr, 
     prop, 
     parsed = "", 
     myObject = [ 
      { 
       firstname: "Jane", 
       lastname: "Doe", 
       email: "[email protected]" 
      }, 
      { 
       firstname: "Ja", 
       lastname: "joe", 
       email: "[email protected]" 
      } 
     ]; 


// My object is an array 
myObject.forEach(function(item, index, array) { 

    // Verify to see that the property you want is yours and not inherited 
    for (attr in item) { 
     if (item.hasOwnProperty(attr)) { 
      parsed += attr + ": " + item[attr] + "\n"; 
     } 
    } 

}) 

alert(parsed);