Circle()
我想以这样的方式遍历这个数组,以便我可以获得所有可能的值,如标题,横幅,社交媒体,徽标,link1,标题内的link2等等。
答案 0 :(得分:2)
你可以使用[index]
进入数组元素,使用.property
进入对象属性内部(如果包含变量名称不支持的字符,或者你想要创建属性,也可以使用['property']
名称动态)。
例如,您可以获取link_1
的{{1}}值:
Header
如果您想让它更具可读性,可以按如下方式编写:
var value = leftArr[0].Header[0].link_1;
console.log(value); // Should display 'Link1(#Section1)';
如果要动态构建属性名称,还可以:
var header = leftArr[0].Header[0];
var link_1 = header.link_1;
//You can reuse headers to access other members
var link_7 = header.link_7;
如果您想深入了解对象中的所有值,您可以:
var links = [];
var header = leftArr[0].Header[0];
var i = 0;
while(header['link_'+i++]) {
links[i-1] = header['link_' + i];
}
console.log(links); // Will contain: ['Link1(#Section1)','Link2(#Section2)'....'Link7(#Section7)']
如果要遍历数组中的所有元素,则:
for (var keyVal in header) {
if (header.hasOwnProperty(keyVal)) {
console.log(keyVal + ':' + header[keyVal]);
}
}
为了方便起见,你可以将它们组合在另一个中,或者使用一些递归来打印对象中的所有数据,如下所示:
for (var index in leftArray) {
var item = leftArray[index];
}
这里有一个正在运行的plnkr:http://plnkr.co/edit/VE44gGDzsfxgZ6iH4SkG?p=preview