匹配两个数组以创建第三个数组

时间:2016-11-22 17:08:27

标签: javascript jquery arrays object match

我有一个数组:

var array = [black, white]

和一个对象:

var object = [
    {color: black, hex: #000000},
    {color: white, hex: #ffffff},
    {color: red, hex: #ff0000}
]

我想要做的是从数组和对象中匹配的颜色创建一个新对象,所以在这个例子中新对象将是:

var object = [
    {color: black, hex: #000000},
    {color: white, hex: #ffffff}
]

3 个答案:

答案 0 :(得分:4)

您可以将filter用于此目的,

var arr = ["black", "white"];
var obj = [
    {color: "black", hex: "#000000"},
    {color: "white", hex: "#ffffff"},
    {color: "red", hex: "#ff0000"}
];

var res = obj.filter(itm => arr.includes(itm.color));
console.log(res); //[{color: "black", hex: "#000000"}, {color: "white", hex: "#ffffff"}]

答案 1 :(得分:3)

你可以filter这个对象:



var array = ['black', 'white']

var object = [
    {color: 'black', hex: '#000000'},
    {color: 'white', hex: '#ffffff'},
    {color: 'red', hex: '#ff0000'}
]

var result = object.filter(function(entry) {
  return array.indexOf(entry.color) > -1;
})

console.log(result);




答案 2 :(得分:-1)

使用过滤器:

var array = ['black', 'white'];
var objectArray = [
    {color: 'black', hex: '#000000'},
    {color: 'white', hex: '#ffffff'},
    {color: 'red', hex: '#ff0000'}
];

var result = objectArray.filter(function(item) {
    return array.some(function(i) {
        return i === item.color;
  })
});


console.log(result);

注意我必须为你的一些示例数据添加引号。