Javascript ES6:如何比较两个数组中的值

Javascript ES6:如何比较两个数组中的值,javascript,ecmascript-6,Javascript,Ecmascript 6,我有两个数组 let items = { search: [ ['car', 'door', 'pen'] ] } let data.props = []; data.props = [ {label: "car"}, {label: "window"}, {label: "kettle"}, {label: "chair"}, {label: "door"}, ] 如何使用es6检查/比较两个阵列?对我来说有点棘手,

我有两个数组

let items = {
    search: [
       ['car', 'door', 'pen']
    ]
}

let data.props = [];

data.props = [
    {label: "car"}, 
    {label: "window"},
    {label: "kettle"},
    {label: "chair"},
    {label: "door"},
]
如何使用es6检查/比较两个阵列?对我来说有点棘手,因为
items[]
是一个嵌套数组

我所拥有的只检查第一项

if (data.props['0'].label === items.search['0'].values['0']) {
        let searchItems = [];
        searchItems.push(data.props['0']);
        console.log(searchItems);
    }
您可以使用流:

//如果有多个搜索值:
常数项={
搜索:{
值:['car','door','pen']
}
}
让数据={
道具:[]
};
data.props=[
{标签:“窗口”},
{标签:“汽车”},
{标签:“水壶”},
{标签:“椅子”},
{标签:“门”},
];
让matches=data.props
.map(prop=>prop.label)
.filter(prop=>items.search.values.indexOf(prop)>=0);
console.log(匹配项);
//如果有一个搜索值
让searchItem=“car”;
matches=data.props
.map(prop=>prop.label)
.filter(prop=>searchItem===prop);
console.log(匹配项)
日志输出为:

[0]: {label: "car"}
[1]: {label: "door"}

“检查/比较两个阵列”是什么意思?请提供所需的输出,并展示您实现要求的尝试。您的目标是什么?请访问,查看和。做一些研究,搜索相关话题等;如果你被卡住了,发布你的尝试,注意输入和预期输出。你的代码是无效的。在没有对象的情况下,无法分配给data.props,并且不应引用数组指示符。编辑后,您的代码现在不再有效。请仔细阅读数组与对象的关系<代码>搜索:[值:['car','door','pen']]
不是有效的数组项。使用
创建一个代码段,并对其进行两次测试以生成“为什么”过滤器:
data.props.filter(prop=>items.search.values.indexOf(prop.label)>=0)
搜索是一个具有一个值的数组。有人错误地编辑了我的问题,只要它是一个数组,它就应该仍然有效。我还为一个项目添加了一个答案:)有趣。。我在
indexOf
下得到一条红线。记住
搜索
[]
而不是
{}
。。但键入脚本错误。但这应该为我指明了正确的方向,谢谢。搜索不应该是[],除非它是
Search:['car','door','pen']
[0]: {label: "car"}
[1]: {label: "door"}