javascript - 循环遍历作为数组的多个对象值并匹配来自另一个充满数组的对象的正确值
问题描述
我的措辞不是很好,但是当您看到我的代码时,您应该能够理解我所说的内容。
我有一个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
这些必须是一些虚构数组的正确长度,但我不知道如何实际获取数据。
解决方案
是你想要的吗?:</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
}
推荐阅读
- python - 我不工作评论和表格不显示
- html - 无法使图像适合导航栏
- sql - 是否可以查看两个连续的行并使用 SQL 确定两者之间的时间差?
- python - 如何在 python/pip 中使用带星号的版本控制安装开发版本?
- reactivesearch - ReactiveSearch:如何在多个过滤器更改之前延迟/暂停响应式查询?
- python - df.groupby('A').agg('min') 如何转换为特征工具?
- java - NoClassDefFoundError 通过切换到另一个项目
- json - 无法使用 HandyJSON 解析 json(字符串)。错误(类型“字符串”不符合协议“HandyJSON”)
- postgresql-10 - 如何避免 PostgreSQL v 10 中的主键列重复?
- javascript - 如何将包含哈希的 URI 作为路由参数传递来表达?