cat*_*use 3 javascript arrays filter
假设我有一个像这样的对象数组:
someObj: [
{
name: "Obj1",
type: "a"
},
{
name: "Obj2",
type: "b"
},
{
name: "Obj3",
type: "c"
}
]
Run Code Online (Sandbox Code Playgroud)
现在我有一个函数,someObj如果传递的参数具有相同的type属性,它应该从数组返回一个对象数组.事情是传递的参数是一个数组,我不知道如何进行比较.
function filter(types) {
var filtered = someObj.filter(function(item) {
return item.type == ???
});
return filtered;
}
filter(["a", "c"]);
Run Code Online (Sandbox Code Playgroud)
我如何比较传递给item.type的数组参数中的每个项目,以便如果它们相等,那么过滤器函数将返回给我一个如下数组:
[
{
name: "Obj1",
type: "a"
},
{
name: "Obj3",
type: "c"
}
]
Run Code Online (Sandbox Code Playgroud)
您可以搜索该类型.
ES5用 Array#indexOf
return types.indexOf(item.type) !== -1;
Run Code Online (Sandbox Code Playgroud)
ES6用 Array#includes
return types.includes(item.type);
Run Code Online (Sandbox Code Playgroud)