如何从JSON对象数组中合并多对象属性生成新的单元素数组
实现方案
核心逻辑
- 先明确有效属性值判定规则:排除
undefined、null、空字符串""、纯空格字符串 - 遍历原数组所有对象,逐个校验属性值有效性,将有效值累积合并到同一个结果对象中
- 最终将合并完成的结果对象封装为新数组即可
代码实现(JavaScript)
// 原数组(已修正语法问题) const a = [ { "first_name": "Andrew", "last_name": " ", "job": "actor" }, { "first_name": "Andrew", "last_name": "Petrov", "job": "", "contry": "Russia" }, { "first_name": "Andrew", "last_name": "Petrov", "contry": "Russia" } ] // 有效值校验函数 const isValidValue = val => { if (val === undefined || val === null) return false if (typeof val === 'string') return val.trim() !== '' return true } // 合并属性 const merged = {} a.forEach(obj => { Object.entries(obj).forEach(([key, val]) => { if (isValidValue(val)) merged[key] = val }) }) // 封装为目标数组 const result = [merged]
输出结果
执行上述代码后result的值即为预期输出:
[ { "first_name": "Andrew", "last_name": "Petrov", "job": "actor", "contry": "Russia" } ]
如果需要调整有效值判定规则,直接修改isValidValue函数的逻辑即可适配不同场景。
内容的提问来源于stack exchange,提问作者DaProgNya
相关产品推荐
相关产品推荐

