Javascript 在嵌套数组/对象中查找对象的最快方法

Javascript 在嵌套数组/对象中查找对象的最快方法,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有以下对象数组,这些对象在一个属性上也有一个数组: const boards = [ { id: 1, name: 'Lorem ipsum', tasks: [ { id: 42, ... }, { id: 65, ... }, { id: 24, ... }, ], }, { id: 2, name: 'Lorem ipsum', tasks: [ { id: 12, ...

我有以下对象数组,这些对象在一个属性上也有一个数组:

const boards = [
  {
    id: 1,
    name: 'Lorem ipsum',
    tasks: [
      { id: 42, ... },
      { id: 65, ... },
      { id: 24, ... },
    ],
  },
  {
    id: 2,
    name: 'Lorem ipsum',
    tasks: [
      { id: 12, ... },
      { id: 85, ... },
      { id: 14, ... },
    ],
  },
];
我正在寻找最佳最有效的方法来查找
任务的索引(当然还有它所在的董事会)。我提出了以下建议,但我想知道在查找
任务
时,这是否真的是最有效的方法,尤其是当您有一个大型数据集时,或者是否有更好的方法进行搜索

在我的特殊情况下,将不会有很多板(大多数情况下不会超过10个,但可能有数百个任务)


板中创建任务及其关联索引的新查找表

var taskIds = {
  12: 1,
  85: 1,
  14: 1,
  42: 0,
  65: 0,
  24: 0
};
从那里,只需查找任务和相关板即可
O(1)
*2

使用Lodash的示例:

var taskIds = {};
_.each(boards, function(board, index) {
  _.each(board.tasks, function(task) {
    taskIds[task.id] = index;
  });
});
现在,您可以通过任务索引在固定时间内轻松找到一块板:

boards[taskIds[65]

var taskIds = {};
_.each(boards, function(board, index) {
  _.each(board.tasks, function(task) {
    taskIds[task.id] = index;
  });
});