假设我有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);