如何实现双属性为空时不发送数据并移除对象的null属性?
处理数组对象的null属性过滤与清理
可以通过数组过滤和对象属性清理两步实现需求:
const fork = [ { from: 'client', msg: null, for: null }, { from: 'client', msg: '2222222222222', for: null }, { from: 'server', msg: null, for: 'data/64.....' } ]; const processedFork = fork // 剔除msg和for同时为null的条目 .filter(item => !(item.msg === null && item.for === null)) // 移除每个对象中值为null的属性 .map(item => { const cleanedObj = {}; Object.entries(item).forEach(([key, value]) => { if (value !== null) cleanedObj[key] = value; }); return cleanedObj; }); console.log(processedFork);
执行后输出结果:
[ { from: 'client', msg: '2222222222222' }, { from: 'server', for: 'data/64.....' } ]
逻辑说明
- 过滤无效条目:用
filter方法判断每个对象的msg和for是否同时为null,是则直接剔除整行数据 - 清理null属性:用
map遍历剩余对象,通过Object.entries遍历属性键值对,只保留值不为null的属性,生成新的干净对象
如果后续有新数据持续补充到fork数组,重复执行这段处理逻辑即可得到符合要求的数据。
内容的提问来源于stack exchange,提问作者user21103711
相关产品推荐
相关产品推荐

