我有一个对象数组,我想根据这些对象的键名称来过滤它们。在这种特殊情况下,我知道数组中的每个元素都有一个键/值对。
假设一个数组如下所示:
let dataArray = [
{
"name": "David"
},
{
"location": "New York"
},
{
"name": "Jenna"
}
]
我想要的最终结果只是一个数组,其中 key
是“名称”:
[
{
name: "David"
},
{
name: "Jenna"
}
]
我尝试了使用 filter
来执行此操作的各种方法方法,比如这样:
const namesArr = dataArr.filter(i => i[key] === 'name');
但似乎没有一个能产生正确的结果。
最佳答案
使用in
运算符检查对象上是否存在属性:
const dataArray = [{"name":"David"},{"location":"New York"},{"name":"Jenna"}];
// name exists on the object
console.log(dataArray.filter(item => 'name' in item));
// or location doesn't exist on the object
console.log(dataArray.filter(item => !('location' in item)));
关于javascript - 根据对象中键的名称过滤对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69133411/