[{name: "apple", color:["green", "red"]}, {name: "banana", color:["yellow"]}]
。
使用for循环?
我试过的代码:
for (i = 0; i < color.length; i++) { return color.length; }
答案 0 :(得分:2)
这是一种巧妙的方式来做我认为你想要的事情:
var all_colors = [{name: "apple", color: ["green", "red"]},
{name: "banana", color: ["yellow"]}].reduce(function(a, b) {
return a.concat(b.color);
}, []);
// Note: this line uses ES6
var colors = Array.from(new Set(all_colors));
输出所有颜色的数组,删除重复项:
答案 1 :(得分:1)
您可以使用map函数作为对象数组,然后使用for循环作为内部属性&#34; color&#34;每个对象。
var fruits = [{
name: "apple",
color: ["green", "red"]
}, {
name: "banana",
color: ["yellow"]
}];
var colors = [];
fruits.map(function(fruit) {
for (var i = 0; i < fruit.color.length; i++) {
colors.push(fruit.color[i]);
}
});
答案 2 :(得分:0)
您可以使用for
循环遍历数组中的对象,然后将每个对象的颜色连接成颜色数组:
var colorArr = [];
var arr = [{name: "apple", color:["green", "red"]}, {name: "banana", color:["yellow"]}];
for(var i in arr) {
if(arr[i]['color']){
colorArr = colorArr.concat(arr[i]['color']);
}
}
&#13;