访问对象数组中信息的最佳实践。 [.find() 与 .filter() 与创建引用对象]

Best practice for accessing information within an array of objects. [.find() vs. .filter() vs. creating a reference object]

有谁知道创建新的辅助对象或使用定位器方法 [如 .find() 或 .filter()] 来帮助将一组数据中的某些唯一标识符转换为它们所代表的名称是否更有效?

我正在使用一组对象来制作 table;每个对象都包含要在 table 的一行中显示的信息。

示例:

    // Data:
    [ { id: someCardIdxx,
        name: "card1",
        pos: 1,
        customFields: 
          [{ id: "1234",
             value: 32 },
          {  id: "4321",
             idValue: "876"}],
      },
      { //...x50 
      }
    ]  

要获取有关customFields 的信息,我需要引用一种适用于整个列表的定义对象。它包含用于理解如何翻译自定义字段 id 和 idValue 的数据。

示例:

// Custom Field Definitions:
[ { id: "1234",
    type: "number",
    display: true,
    name: "Size",
  },
  { id: "4321",
    type: "list",
    display: true,
    name: "Color",
    options: 
       [{ id: "987",
          name: "Yellow"},
        { id: "876", 
          name: "Green"}]
   },
   { // ...x8
   }
]

在分析Data数组中的每个卡片对象时,我可以在.find().filter()的帮助下使用Definitions数组,但这意味着每次我想解释一张卡片时,都会在 Definitions 数组中搜索一个对象。

如果我采用 Definitions 的 customField 对象数组并将其转换为我可以引用的单个组织对象,是否会更好?

最终目标可能是这样的,字段 ID 用作 属性 键:

// New Definitions Object: 
{ "1234": "Size",
  "4321": {
    "name": "Color",
    "options": {
      "987": "Yellow",
      "876": "Green"
    }
  },
  // ...x8
}

是在创建对象后以属性形式访问此信息更快,还是在具有适当 ID 的数组中查找它更快?这些策略(或其他策略)中的哪一个通常最适合使用?

我不确定这是最佳实践还是我的经验。从我的角度来看,你不应该构建你的应用程序数据模型来寻找数据提供者(后端)响应结构,而是寻找你的功能。

根据我的经验,仅当项目顺序很重要时,您才应将项目集合保存在数组中。如果每个项目都有唯一标识符并且订单不计价,则最佳选择是常规映射(或 id 到值对象)

但不管怎样,50个项目你可以用任何方式做,差异将是看不见的