首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Javascript获取对象id

用Javascript获取对象id
EN

Stack Overflow用户
提问于 2020-09-11 16:49:23
回答 3查看 1.3K关注 0票数 1

我有以下对象数组:

代码语言:javascript
复制
[
  {
    "id": 97,
    "name": "Jon",
    "technologies": [
      {
        "id": 6,
        "name": "React"
      },
      {
        "id": 7,
        "name": "Messageria"
      }
    ]
  },
  {
    "id": 98,
    "name": "Doe",
    "technologies": [
      {
        "id": 2,
        "name": "Javascript"
      },
      {
        "id": 6,
        "name": "React"
      }
    ]
  },
  {
    "id": 99,
    "name": "Mark",
    "technologies": [
      {
        "id": 8,
        "name": "PHP"
      },
      {
        "id": 9,
        "name": "Laravel"
      }
    ]
  }
]

我如何过滤这个数组,只返回那些拥有id 6技术的开发人员?

我需要的回报仅仅是与技术id 6有关系的开发人员,但是我需要其他相关技术也出现在开发人员面前。

我知道通过find方法可以做到这一点,但我不知道如何实现它。

代码语言:javascript
复制
const result = developers.find(dev => dev.technologies ?);

正确的表格是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-11 16:56:41

对于此任务,可以将过滤器一些数组操作结合使用。就像这样:

代码语言:javascript
复制
persons.filter(person => person.technologies.some(tech => tech.id == 6))
票数 2
EN

Stack Overflow用户

发布于 2020-09-11 16:53:30

这将返回技术人员的详细信息id 6:

代码语言:javascript
复制
persons = [
  {
    "id": 97,
    "name": "Jon",
    "technologies": [
      {
        "id": 6,
        "name": "React"
      },
      {
        "id": 7,
        "name": "Messageria"
      }
    ]
  },
  {
    "id": 98,
    "name": "Doe",
    "technologies": [
      {
        "id": 2,
        "name": "Javascript"
      },
      {
        "id": 6,
        "name": "React"
      }
    ]
  },
  {
    "id": 99,
    "name": "Mark",
    "technologies": [
      {
        "id": 8,
        "name": "PHP"
      },
      {
        "id": 9,
        "name": "Laravel"
      }
    ]
  }
]

persons.filter(person => person.technologies.find(tech => tech.id == 6))
票数 1
EN

Stack Overflow用户

发布于 2020-09-11 16:59:25

您需要使用一些来查找元素是否存在特定id:

代码语言:javascript
复制
const data = [
  {
    "id": 97,
    "name": "Jon",
    "technologies": [
      {
        "id": 6,
        "name": "React"
      },
      {
        "id": 7,
        "name": "Messageria"
      }
    ]
  },
  {
    "id": 98,
    "name": "Doe",
    "technologies": [
      {
        "id": 2,
        "name": "Javascript"
      },
      {
        "id": 6,
        "name": "React"
      }
    ]
  },
  {
    "id": 99,
    "name": "Mark",
    "technologies": [
      {
        "id": 8,
        "name": "PHP"
      },
      {
        "id": 9,
        "name": "Laravel"
      }
    ]
  }
]

const myFilteredData = data.filter(test => test.technologies.some(data => data.id===6));

console.log(
myFilteredData
)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63851212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档