如何为对象数组中缺失的属性添加null值(无需循环)
解决方案:为对象数组补充缺失属性为null(无需手动循环)
你可以利用数组的map方法结合对象扩展运算符(或Object.assign)实现,无需手动编写for/while这类循环结构:
代码实现
原始数据
var data = [ { "id": 1, "name": "John" }, { "id": 2 }, { "id": 3 } ];
处理逻辑(两种方式任选)
方式1:对象扩展运算符
const result = data.map(item => ({ name: null, ...item }));
方式2:Object.assign
const result = data.map(item => Object.assign({ name: null }, item));
执行结果
[ { "id": 1, "name": "John" }, { "id": 2, "name": null }, { "id": 3, "name": null } ]
原理说明
map方法会自动遍历数组的每个元素,无需手动编写循环,它会返回一个处理后的新数组。- 对象合并时,先声明默认属性
name: null,再展开原对象(或用Object.assign把原对象合并到默认对象上):如果原对象已经有name属性,会覆盖默认值;如果没有,就保留默认的null值,正好符合需求。
内容的提问来源于stack exchange,提问作者monica_s
相关产品推荐
相关产品推荐

