我有一个数组:
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}
]
答案 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);
注意我必须为你的一些示例数据添加引号。