【问题标题】:Javascript - getting object id using findJavascript - 使用 find 获取对象 ID
【发布时间】:2019-04-11 04:58:49
【问题描述】:

我有一个嵌套数组,我知道人的 id (person.id),但我试图找到对象的 id。如此有效的“父母”ID。

{

         {
                "id": "12345",
                "person": {
                  "id": "435345345345345",
                  "first_name": "Jim",
                  "last_name": "Smith",
        },
 {
                "id": "56789",
                "person": {
                  "id": "3434534534543",
                  "first_name": "Tony",
                  "last_name": "Black",
        },

}

这会返回人

const id = this.people.find(person  => person.id === myid)


{
  "id": "435345345345345",
  "first_name": "Jim",
  "last_name": "Smith",
},

但是我看不到获取 id (12345) 的明显方法。我查看了所有标准数组函数,但似乎没有什么是合适的。

【问题讨论】:

  • this.people 数组中的对象是对象 person ?
  • 所以它不是嵌套数组,而是代码示例中的对象
  • 您的输入对象无效。

标签: javascript arrays algorithm object search


【解决方案1】:

我知道您可能想坚持使用标准库,但您可以尝试使用 lodash 的 find,https://lodash.com/docs/4.17.10#find

这是一个返回整个对象的示例:

https://runkit.com/rgomezs4/5be32606c9a3790013b4e4fc

【讨论】:

  • 我可以不使用 lodash。
【解决方案2】:

你可以使用Array.find()方法!

var myid = '435345345345345';

var  users = [
  {
    "id": "12345",
    "person": {
      "id": "435345345345345",
      "first_name": "Jim",
      "last_name": "Smith",
    }
  },

  {
    "id": "56789",
    "person": {
      "id": "3434534534543",
      "first_name": "Tony",
      "last_name": "Black",
    },
  }
];

var result = users.find(obj => obj.person.id === myid);
console.log('Object: ' + result);
console.log('Required ID: ' + result.id);

【讨论】:

  • 谢谢,这不是我的吗?无论如何,它现在可以工作了。
猜你喜欢
  • 2022-11-01
  • 2010-09-21
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 2011-02-20
相关资源
最近更新 更多