如何从所有颜色阵列中访问所有颜色?

时间:2015-11-10 17:14:28

标签: javascript

[{name: "apple", color:["green", "red"]}, {name: "banana", color:["yellow"]}]。  使用for循环?

我试过的代码:  for (i = 0; i < color.length; i++) { return color.length; }

3 个答案:

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

输出所有颜色的数组,删除重复项:

enter image description here

答案 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循环遍历数组中的对象,然后将每个对象的颜色连接成颜色数组:

&#13;
&#13;
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;
&#13;
&#13;