如何为数组中每个对象的Adress_Info动态添加position键值对?
问题:为数组对象的Adress_Info添加position属性
需求:当数组元素总数为2时,给每个对象的Adress_Info对象中添加对应的position值(第一个元素position为1,第二个为2)。
原数据结构:
[{ "key": 111, "Students_Info": [{ "recordId": 111 }], "Adress_Info": { "city": "Delhi" } }, { "key": 222, "Students_Info": [{ "recordId": 222 }], "Adress_Info": { "city": "Delhi" } } ]
你尝试的代码存在逻辑错误:
data.forEach((element, value) => { data.push("position:"+ value) });
这段代码会往数组末尾新增元素,而非修改现有对象的Adress_Info属性;同时forEach的第二个参数是从0开始的索引,也没处理成需求里的1、2值。
正确实现代码
// 先校验数组长度是否为2 if (data.length === 2) { data.forEach((element, index) => { // 给当前元素的Adress_Info添加position属性,值为索引+1 element.Adress_Info.position = index + 1; }); }
代码说明
- 先通过
data.length === 2判断是否符合修改条件 forEach的第二个参数index是元素的索引(从0开始),index + 1正好对应需要的1、2值- 直接通过
element.Adress_Info.position赋值,即可在现有Adress_Info对象中插入该属性
内容的提问来源于stack exchange,提问作者coder
相关产品推荐
相关产品推荐

