javascript - 如何按值查找多个数组元素?

标签 javascript arrays json

我需要选择多个具有相同值的数组元素。 使用array.find()仅返回满足查询条件的第一个元素。 下面的结构在控制台中仅显示“Donald Trump”:

const data = [
  {
    "position": "president",
    "name": "Donald Trump",
    "language": "english"
  },
  {
    "position": "president",
    "name": "Vladimir Putin",
    "language": "russian"
  },
  {
    "position": "king",
    "name": "Shutruk-Nahhunte",
    "language": "elamite"
  },
];
let result = data.find(elem => elem.position == "president");
console.log(result.name);

但是我需要将所有值作为数组获取, - 像这样:

[
  "Donald Trump",
  "Vladimir Putin"
]

如何正确地做到这一点,同时考虑到实际数组是巨大的。 感谢您的帮助!

最佳答案

我使用过滤器来完成此任务

const data = [
  {
    "position": "president",
    "name": "Donald Trump",
    "language": "english"
  },
  {
    "position": "president",
    "name": "Vladimir Putin",
    "language": "russian"
  },
  {
    "position": "king",
    "name": "Shutruk-Nahhunte",
    "language": "elamite"
  },
];

const newArray= data.filter(x=>x.position==='president')
let nameArray=newArray.map(x=>x.name)
console.log(nameArray)

关于javascript - 如何按值查找多个数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60412083/

相关文章:

javascript - 根据动态Url设置iframe url

javascript - IE7 javascript命令行工具

javascript - 映射单元格以在 HTML 表格中显示 JSON 数据

javascript - 如何更改 JSON 结构

javascript - 将每个键有多个值的对象转换为 JS 中的对象数组

javascript - 无法理解二叉树 DFS 的递归部分

javascript - 在不打开浏览器的情况下读取 selenium 中的 javascript 代码

java - 如何将运行时已知的值 ('how many' 传递给 SQL 查询

javascript - 将数组变成多维数组? JavaScript

c++ - 无法从 int[][] 转换为 int*