首页 > 解决方案 > 循环遍历作为数组的多个对象值并匹配来自另一个充满数组的对象的正确值

问题描述

我的措辞不是很好,但是当您看到我的代码时,您应该能够理解我所说的内容。

我有一个object看起来像这样的(newObj在下面我尝试的解决方案中调用):

2020-05-03: (8) ["2020-05-03", "2020-05-04", "2020-05-05", "2020-05-06", "2020-05-07", "2020-05-08", "2020-05-09", "2020-05-10"]
2020-05-10: (8) ["2020-05-10", "2020-05-11", "2020-05-12", "2020-05-13", "2020-05-14", "2020-05-15", "2020-05-16", "2020-05-17"]
2020-05-17: (6) ["2020-05-17", "2020-05-18", "2020-05-19", "2020-05-20", "2020-05-21", "2020-05-22"]

键需要保留日期,因为它将在我的折线图的 x 轴上。

现在,我需要遍历上面的每个日期数组,并确定所述日期是否与pickup_date下面对象中的值匹配(在下面我尝试的解决方案中object调用loads),然后将其添加到newObj

0: {id: 167, pickup_date: "2020-05-21", pickup_location: "Sugar Creek, MO 64050, USA", rate: "1000.0", delivery_date: "2020-05-22", …}
1: {id: 768, pickup_date: "2020-05-19", pickup_location: "North Kansas City, MO 64116, USA", rate: "450.0", delivery_date: "2020-05-20", …}
2: {id: 809, pickup_date: "2020-05-20", pickup_location: "Wichita, KS 67219, USA", rate: "454.3", delivery_date: "2020-05-20", …}
3: {id: 984, pickup_date: "2020-05-19", pickup_location: "Fulton, MO 65251, USA", rate: "650.0", delivery_date: "2020-05-20", …}
4: {id: 1232, pickup_date: "2020-05-19", pickup_location: "Shawnee, KS 66219, USA", rate: "1209.62", delivery_date: "2020-05-19", …}
5: {id: 1317, pickup_date: "2020-05-20", pickup_location: "Shawnee, KS 66219, USA", rate: "1209.62", delivery_date: "2020-05-20", …}
6: {id: 1321, pickup_date: "2020-05-21", pickup_location: "Sugar Creek, MO 64058, USA", rate: "550.0", delivery_date: "2020-05-21", …}
7: {id: 1325, pickup_date: "2020-05-18", pickup_location: "Kansas City, MO 64120, USA", rate: "903.6", delivery_date: "2020-05-18", …}
8: {id: 1326, pickup_date: "2020-05-21", pickup_location: "Kansas City, MO 64120, USA", rate: "838.6", delivery_date: "2020-05-21", …}
9: {id: 1451, pickup_date: "2020-05-13", pickup_location: "Kansas City, MO 64127, USA", rate: "575.0", delivery_date: "2020-05-14", …}

基本上,首字母object包含一周的日期。我想从我的第二个数组中找到所有日期,objects并将它们与正确的key.

我尝试了很多事情,最终得到了两个结果;我要么只得到我的newObj值中的最后一个元素,要么得到值的array长度newObj(这是正确的长度......这就是实际有多少负载array但我无法访问它们)。

这是我的代码:

for(property in newObj){
          newObj[property].forEach(function(date){
            loads.forEach(function(load){
              if (load.pickup_date === date){
                newObj[property] = arr.push(load)
              }
            })
          })
        }
        console.log(newObj)

这是具有正确数组长度的控制台;只是不是实际负载...

2020-05-03: 34
2020-05-10: 68
2020-05-17: 95

这些必须是一些虚构数组的正确长度,但我不知道如何实际获取数据。

标签: javascriptloopsobject

解决方案


是你想要的吗?:</p>

let finalRes = {}
for(property in newObj){
          let arr = []
          newObj[property].forEach(function(date){
            loads.forEach(function(load){
              if (load.pickup_date === date){
                arr.push(load)
              }
            })
          })
         finalRes[property] = arr
        }

推荐阅读