TypeError:在过滤数组中对象的值时,obj[key].includes 不是一个函数
2017-01-12
7670
我想通过某个值过滤对象数组中的值。当我运行该函数时,我收到
TypeError: obj[key].includes 不是函数
。我正在使用 reactjs。我在函数中遗漏了什么?
var arr = [{
name: 'xyz',
grade: 'x'
}, {
name: 'yaya',
grade: 'x'
}, {
name: 'x',
frade: 'd'
}, {
name: 'a',
grade: 'b'
}];
filterIt(arr, searchKey) {
return arr.filter(obj => Object.keys(obj)
.map(key => obj[key].includes(searchKey)));
}
我从 https://stackoverflow.com/a/40890687/5256509 获得了此示例并尝试了它
1个回答
您无法像这样过滤对象数组,因为此组合
Object.keys(obj).map(key => obj[key].includes(searchKey))
始终提供一个数组(具有
true
和
false
值),并且任何数组都是真值。因此过滤器不会过滤任何内容。您可以尝试以下方法:
arr.filter(obj =>
Object.keys(obj)
.some(key => obj[key].includes(searchKey))
);
dfsq
2017-01-12