Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 匹配两个数组以创建第三个数组_Javascript_Jquery_Arrays_Object_Match - Fatal编程技术网

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

Javascript 匹配两个数组以创建第三个数组,javascript,jquery,arrays,object,match,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},

我有一个数组:

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}
]
你可以使用

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"}]
你可以这样做:

var数组=['black','white']
变量对象=[
{颜色:'黑色',十六进制:'#000000'},
{颜色:'白色',十六进制:'#ffffff'},
{颜色:'红色',十六进制:'#ff0000'}
]
var result=object.filter(函数(条目){
返回数组.indexOf(entry.color)>-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);

注意:我不得不在你的一些示例数据中添加引号。

过滤器
包括
(IE不支持)@j08691 IE>=9支持
过滤器
索引
。OP可以利用这一点,如果他想在ESF中编写代码,您可以创建一个新的数组objectFiltered,循环对象并对数组进行条件检查。indexOf(object[i].color)>-1如果为true,则将当前索引推送到ObjectFlitterd。