假设我有2个
JSON对象数组,如下所示:
资源:
[{ "DefinitionId": 193041,"ResourceId": -2147290607,"AssetId": 193041 },{ "DefinitionId": 193042,"ResourceId": -2147290603,"AssetId": 193042 }]
ResourceIds
[193041,193041,193042]
用例:
我需要为每个ResourceId列出我的Resources JSONObject的详细信息.例如,我想为ResourceIds中的每个ResourceId输出AssetId.
我的计划:
我认为将我的Resources JSON转换为关联数组是一个优雅的解决方案,这样我就可以像我这样访问ResourceId’193041’的AssetId:Resources [193041] .AssetId.问题:我只能考虑使用长代码将上面的Resources JSON转换为关联的JSON对象.
问题是:
如何将上述Resources JSON对象数组转换为以ResourceId为键的关联对象数组?
期望的Resources.json:
{ "-2147290607": { "DefinitionId": 193041,"AssetId": 193041 },"-2147290603": { "DefinitionId": 193042,"AssetId": 193042 } }
解决方法
您可以使用一个对象并使用
Array#forEach
迭代该数组
The
forEach()
method executes a provided function once per array element.
回调使用Arrow function,因为只有一个赋值.
var data = [{ "DefinitionId": 193041,"AssetId": 193041 },{ "DefinitionId": 193042,"AssetId": 193042 }],object = {}; data.forEach(a => object[a.ResourceId] = a); console.log(object);