我应该如何在JavaScript中给予ID?[关闭]

f0ofjuux  于 2023-06-28  发布在  Java
关注(0)|答案(3)|浏览(75)

已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

5小时前关闭
Improve this question
我正在学习JavaScript中的对象,我使用了一个用户示例,但我有一个问题。

let users = [
    {
        "id": "1",
        "name": "John",
        "age": 20,
        "address": "123 Main Street"
    },

    {
        "id": "2",
        "name": "Emma",
        "age": 23,
        "address": "12 Main Street"
    }
]

console.log(users[0].id);

在这段代码中,我使用users[0]访问John,但John的ID是'1',我使用[0]作为数组索引样式。所以,我觉得有点困惑。这是正确的,还是我编码错误?它是否遵循一个公认的风格?
我想给予用户ID,但索引号与ID号看起来很奇怪。

46qrfjad

46qrfjad1#

要从users数组中查找表示John的对象,可以使用find方法。find方法迭代users数组的元素,并返回满足所提供条件的第一个元素。在本例中,条件user.name === "John"检查每个用户对象的name属性是否等于John
下面是一个示例,说明如何做到这一点:

let users = [
    {
        "id": "1",
        "name": "John",
        "age": 20,
        "address": "123 Main Street"
    },

    {
        "id": "2",
        "name": "Emma",
        "age": 23,
        "address": "12 Main Street"
    }
]
let john = users.find(user => user.name === "John");
console.log(john.id); 
console.log(john.age);
console.log(john.address);
s1ag04yj

s1ag04yj2#

您可以通过array.find按id搜索数组

console.log(users.find(function(a) { return a.id == 1}));
elcex8rz

elcex8rz3#

当引用对象时,比如具有(理论上)唯一ID的用户,最佳实践通常要求将它们存储在hashmap(ish)键值结构中。在这种情况下,您需要为用户创建唯一的ID(我推荐使用uuid之类的东西来确保唯一的ID)。这个对象仍然可以被迭代,但更重要的是,您可以立即通过对象的id引用对象,而不需要遍历数组来找到所需的用户。应用于您的示例的这种方法看起来像这样:

let users = {
  "1": {
      "id": "1",
      "name": "John",
      "age": 20,
      "address": "123 Main Street"
  },

  "2": {
      "id": "2",
      "name": "Emma",
      "age": 23,
      "address": "12 Main Street"
  }
}

console.log(users['1'].name);

最佳实践是删除id参数,以便为id提供一个真实值来源,但为了方便起见,也可以保留它。
希望这有帮助!

相关问题