2014-10-10 182 views
0

我有一个数据对象,每个对象包含一个tags数组,我想循环遍历该对象并获取每个对象标记,然后组合这些值,最后在完成循环时将这些值组合成一个名为selections的数组。目前,我无法解决这个问题,我尝试将标签推入数组,然后使用下划线_.union方法,并尝试将每个循环数组连接到1,但没有成功。任何人都可以推荐解决方案如何将对象数组值组合到一个数组中?

小提琴:http://jsfiddle.net/24qh7zfv/3/

JS

var selection = []; 

var data = ([ 
    { 
     role: "Developer", 
     tag: "developer", 
     tags: ["Javascript", "CSS", "HTML"] 
    }, { 
     role: "Producer", 
     tag: "producer", 
     tags: ["Project Management", "Pitching", "Billing"] 
    } 
]); 


for(var i = 0, len = data.length; i < len; i++) { 
    selection.concat(data[i].tags); 
} 

console.log(selection); 

回答

2

您需要重新分配selection,并CONCAT到寿说。所以使用:

for(var i = 0, len = data.length; i < len; i++) { 
    selection = selection.concat(data[i].tags); 
} 
0

你可以简单地做到这一点。

var selection = data.map(function(x){ 
    return x.tags; 
}).join().split(","); 
1

这应该有效。

var selection = []; 

var data = [ 
    { 
     role: "Developer", 
     tag: "developer", 
     tags: ["Javascript", "CSS", "HTML"] 
    }, { 
     role: "Producer", 
     tag: "producer", 
     tags: ["Project Management", "Pitching", "Billing"] 
    } 
]; 


for(var i = 0; i < data.length; i++) { 
    for(var j = 0; j < data[i].tags.length; j++){ 
     selection.push(data[i].tags[j]); 
    } 
} 
相关问题