首页 > 解决方案 > 如何合并两个 JavaScript 对象的属性并且不喜欢空值?

问题描述

这里有两个对象:

const obj1 = {a: null, b: "b"} 
const obj2 = {a: "a", b: null}

如何合并这两个对象并获得以下对象?

{a: "a", b: "b"}

我可以做这个:

const merged = {...obj1, ...obj2}

但它返回这个:

{ a: "a", b: null }

有没有一种方法可以合并两个对象,同时不喜欢 null(也不为空、未定义等)值?

标签: javascript

解决方案


function merge(obj1, obj2) {
  answer = {}
  for(key in obj1) {
    if(answer[key] === undefined || answer[key] === null)
      answer[key] = obj1[key];
  }
  for(key in obj2) {
    if(answer[key] === undefined || answer[key] === null)
      answer[key] = obj2[key];
  }
  return answer
}

推荐阅读