提取JavaScript对象中的第一个非空键值对



让我们假设我有以下对象:

const obj = {
a: null,
b: null,
c: 1
}

我想提取的是第一个非空对,这里是{c: 1}

我目前的尝试有效,但是硬编码的,不是动态的:

const data = obj.a ? {a: obj.a} : (obj.b ? {b: obj.b} : {c: obj.c})

您可以使用Object.keys来获取对象的键。然后,使用find返回具有非null值的第一个密钥。

const obj = {
a: null,
b: null,
c: 1
}
const keyWithValue = Object.keys(obj).find((key) => obj[key] !== null);
return { [keyWithValue]: obj[keyWithValue] };

你的意思是这样?

const obj = {
a: null,
b: null,
c: 1
}
const data = {}
for(let key in obj) {
if(obj[key]) data[key] = obj[key]
}
console.log(data)

您可以迭代对象键,并在找到第一个非null值后使用break停止循环。也许是这样的:

const obj = {
a: null,
b: null,
c: 1
}
let notNullValue;
for(let prop in obj) {
if(obj[prop] !== null){
notNullValue = {[prop]: obj[prop]};
break;
}
}
console.log(notNullValue);

最新更新