【发布时间】:2022-01-12 19:20:28
【问题描述】:
下面的数据是两个给定的对象数组。 第一个变量 vacStatus 包含有关州的疫苗接种状态、接种疫苗的日期和人数的信息。 第二个变量 census2020 包含有关州和总人口的信息。
let vacStatus = [
{"st": "Connecticut", "date": "12/05/2021", "vac": 3031233},
{"st": "Connecticut", "date": "12/06/2021", "vac": 3031723},
{"st": "New Jersey", "date": "01/08/2022", "vac": 7554407},
{"st": "New Jersey", "date": "01/09/2022", "vac": 7560007},
{"st": "New Jersey", "date": "01/10/2022", "vac": 7562207},
{"st": "New Jersey", "date": "01/11/2022", "vac": 7564407},
{"st": "New York", "date": "01/09/2022", "vac": 16625152},
{"st": "New York", "date": "01/10/2022", "vac": 16626152},
{"st": "Pennsylvania", "date": "01/10/2022", "vac": 10208537},
{"st": "Pennsylvania", "date": "01/11/2022", "vac": 10218537},
{"st": "Rhode Island", "date": "01/11/2022", "vac": 961320},
{"st": "Vermont", "date": "01/11/2022", "vac": 564218},
];
let census2020 = [
{"st": "Connecticut", "ppl": 3605944},
{"st": "Maine", "ppl": 1362359},
{"st": "Massachusetts", "ppl": 7029917},
{"st": "New Hampshire", "ppl": 1377529},
{"st": "Rhode Island", "ppl": 1097379},
{"st": "Vermont", "ppl": 643077},
];
下面是我想从上面两个给定的对象数组中得到的结果。 请注意,r 是根据该州的总人数(来自 2020 年人口普查的数据)和最近的疫苗状态数据(来自 vacStatus 的数据,其中“日期”是距今天最近的日期)
// Your result should look like:
let vacRate = [
{"st": "Connecticut", "r": 0.8407570943974726},
{"st": "New Jersey", "r": null},
{"st": "New York", "r": null},
{"st": "Pennsylvania", "r": null},
{"st": "Rhode Island", "r": 0.8760145765501254},
{"st": "Vermont", "r": 0.8773723830894279},
];
以下是我的解决方案,但不正确!!!!
let vacRate = [];
for (i = 0; i < vacStatus.length; i++ ){
let state = vacStatus[i]["st"]
let vacPpl = vacStatus[i]["vac"]
let tempData = {"st": state, "r": null};
for (let each of census2020) {
if(each["st"] == state){
let pplInfo = each.ppl;
tempData = {"st": state, "r": vacPpl / pplInfo};
vacRate.push(tempData)
}
}
vacRate.push(tempData)
}
console.log(vacRate)
console.log(vacRate.length)
能否请您帮助我了解如何在 vacRate 中正确获取数据?我承认我非常不擅长对象数组,但它是一种非常有用且经常使用的数据结构。
感谢您的帮助!!!
【问题讨论】:
标签: javascript arrays object