javascript - 解析这个 Json 响应并在 JavaScript 中循环遍历数组
问题描述
有很多关于这个的帖子,但我无法弄清楚这个。这是来自 Ajax 函数的 json 响应:
var obj = {
"3901": 10,
"3900": 3,
"3902": 9,
"3899": 2,
"3274": 4,
"3257": 9.5,
"3883": 12,
"3881": "12",
"3876": 3,
"3267": 14,
"3258": 2.5,
"3260": 13.5,
"3259": 6.5,
"3264": 4.5,
"3268": 2,
"3273": 5.5,
"3266": 17,
"3270": 9,
"3271": 8,
"3275": 2,
"3263": 2.5,
"3261": 2.5,
"3265": "37",
"3281": 3,
"3277": 7.5,
"3278": 0.5,
"3276": 7,
"3898": 8,
"3891": 7,
"3293": 1,
"3895": 1,
"3256": 2,
"3903": 10,
"3840": 2,
"3886": 11,
"3884": 8,
"3872": 2,
"3874": 4,
"3284": 1.5,
"3302": 1.25,
"3304": 5,
"3306": 2,
"3329": 1.5,
"3330": 2,
"3333": 6,
"3335": 7.5,
"3327": 1,
"3934": 8,
"3935": 9,
"3939": 1,
"3933": 3,
"3937": 1,
"3322": 3.5,
"3890": 1,
"3878": 5,
"3880": 4,
"3879": 1,
"3889": 2,
"3852": 2,
"3877": 2
}
我有一个 ID:3902、3883、4567 和 3878
我只需要遍历这 4 个 id 并检查它们是否在 json 响应中,以及它们是否获得了与之关联的值,如果没有返回 0。例如:
3902 将返回 9,4567 将返回 0
谢谢。
解决方案
您可以将所有 id 放入一个名为 的数组ids
中,然后.map()
在该数组上使用。对于id
数组中的每个,您可以使用obj[id]
. 如果它不存在,它将返回undefined
。如果发生这种情况,您可以通过以下方式使用默认0
值||
:
请参见下面的示例:
const obj = {"3901":10,"3900":3,"3902":9,"3899":2,"3274":4,"3257":9.5,"3883":12,"3881":"12","3876":3,"3267":14,"3258":2.5,"3260":13.5,"3259":6.5,"3264":4.5,"3268":2,"3273":5.5,"3266":17,"3270":9,"3271":8,"3275":2,"3263":2.5,"3261":2.5,"3265":"37","3281":3,"3277":7.5,"3278":0.5,"3276":7,"3898":8,"3891":7,"3293":1,"3895":1,"3256":2,"3903":10,"3840":2,"3886":11,"3884":8,"3872":2,"3874":4,"3284":1.5,"3302":1.25,"3304":5,"3306":2,"3329":1.5,"3330":2,"3333":6,"3335":7.5,"3327":1,"3934":8,"3935":9,"3939":1,"3933":3,"3937":1,"3322":3.5,"3890":1,"3878":5,"3880":4,"3879":1,"3889":2,"3852":2,"3877":2};
const ids = [3902, 3883, 4567, 3878];
const res = ids.map(id => obj[id] || 0);
console.log(res);
推荐阅读
- html - Why not use
- reactjs - Property 'token' is missing in type 'PropsWithChildren
' but required in type '{ token: string; }' - javascript - Bootstrap-vue closing modal scrolls to top after using navbar link
- quarkus - Force restart when resource files are updated
- odoo - Sale Order count is not displayed in portal home view in custom layout odoo14
- mongodb - Azure CosmosDb MongoAPI nearSphere return nothing
- grouping - How to get nodes grouped in XSLT 1.0
- python - 在python中总结小时和分钟的列
- c++ - C++ template | error: parameter packs not expanded with '...':
- c - How to create recursion for vector addition?