Javascript 从对象数组高效地更新javascrips中的字典
我收到API的以下回复: 我需要更新字典,而不必在整个数组中运行 这是一种有效的方法吗 在进行此响应之前,我得到了一个“getall”数组,并将该数组转换为dictionary,以便更容易更新列表Javascript 从对象数组高效地更新javascrips中的字典,javascript,angular,Javascript,Angular,我收到API的以下回复: 我需要更新字典,而不必在整个数组中运行 这是一种有效的方法吗 在进行此响应之前,我得到了一个“getall”数组,并将该数组转换为dictionary,以便更容易更新列表 [ {id:2, name:"rrr"}, {id:3 , name:"test"} ] 我有以下字典: 0: {id:0, name:"aaa"}, 1: {id:1, name:"bbb"}, 2: {id:2, name:"rrr"}, 3: {id:3, name:"zzz"},
[
{id:2, name:"rrr"},
{id:3 , name:"test"}
]
我有以下字典:
0: {id:0, name:"aaa"},
1: {id:1, name:"bbb"},
2: {id:2, name:"rrr"},
3: {id:3, name:"zzz"},
mergind结果使用新对象更新字典中的数据(替换对象)
字典的键与“id”参数相同
所以结果会是,
0: {id:0, name:"aaa"},
1: {id:1, name:"bbb"},
2: {id:2, name:"rrr"},
3: {id:3, name:"test"},
我想你要找的是这样的东西 使用array.prototype.map函数循环整个响应数组,并将其映射到所需格式的自定义对象
let dictionary = {};
array.map(function(item) {
dictionary[item.id] = item
})
对于lodash,我会使用这样的东西
const dict={
0:{id:0,名称:“aaa”},
1:{id:1,名称:“bbb”},
2:{id:2,名称:“rrr”},
3:{id:3,名称:“zzz”}
};
预期常数={
0:{id:0,名称:“aaa”},
1:{id:1,名称:“bbb”},
2:{id:2,名称:“rrr”},
3:{id:3,名称:“test”}
}
//来自xhr响应的数据
常数xhrResponse=[
{id:2,名称:“rrr”},
{id:3,名称:“test”}
];
//
_.合并(
dict,//合并到dict中
_.keyBy(xhrResponse,'id')//keyBy函数的结果
);
log(`Actua${uu.isEqual(预期,dict)'''NOT'}等于预期')
控制台日志(dict)代码>
什么是预期的输出和更新的api响应所基于的条件能否简单说明需要处理的数据和需要的结果数据?Hi@chaitanya i添加了一个示例,我只需要将数组合并到字典中,并替换为IDAPI。您的API响应将包含其他字典中的所有对象,还是仅包含其中的一部分?