javascript - 根据对象中键的名称过滤对象数组

标签 javascript arrays

我有一个对象数组,我想根据这些对象的键名称来过滤它们。在这种特殊情况下,我知道数组中的每个元素都有一个键/值对。

假设一个数组如下所示:

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/

相关文章:

javascript - Sencha 模板 (tpl) 具有特殊条件,隐藏或不隐藏

arrays - Lua中不区分大小写的数组

c++ - 仅删除动态分配的结构对象数组的特定元素

javascript - 后退按钮重写以重定向回新位置

javascript - 用 Jasmine 测试 JS,有没有办法匹配传入对象的类型?

javascript - 有没有办法使用函数参数的值来声明变量

python - 使用双曲正切在 Python 中创建螺旋结构

javascript - 如何在 React 类中正确等待 fetch

java - 将数组映射到对象

javascript - insertAfter,然后删除前一个元素