我有一个带顺序的对象数组,我必须将其与另一个包含其他信息的数组合并。哪种算法最快?

我有两个数组用来描述公交线路停靠点的对象:

  1. array1包含具有 stopId 时间(即12.00)的对象。相同的stopId 可以在不同的时间重复多次
  2. array2包含具有 stopId stopName 的对象。 StopId与array1相同,但不再重复

如何获取与array1 具有相同顺序的新数组。但这还包含站点的名称(stopName)吗?我需要尽可能最快的算法

这里是一个例子:

array1 = [{ stopId : 2845,time : "12:00"},{ stopId : 2900,time : "12:02"},{ stopId : 2901,time : "12:05"},...
          { stopId : 2845,time : "12:25"}] 

array2 = [{ stopId : 2845,stopName: "NewYork"},stopName: "London"},stopName: "Rome"},...]

result = [{ stopId : 2845,time : "12:00",time : "12:02",time : "12:05",time : "12:25",stopName: "NewYork"}] 
brqtmars 回答:我有一个带顺序的对象数组,我必须将其与另一个包含其他信息的数组合并。哪种算法最快?

这看起来是.map()的好用例

const result = array1.map((val) => {
  stop = array2.filter(val2 => val2.stopId === val.stopId)
    if (stop[0] && stop[0].stopName) {
      val.stopName = stop[0].stopName
      }
    return val;
  })

如果找到其他方法,则可以使用console.time()和console.timeEnd()进行计时,以轻松测试速度:)

本文链接:https://www.f2er.com/3101124.html

大家都在问