在函数内部的" "中转换 null



我有这段代码,效果非常好,我不想改变任何东西,只是添加一个我需要的新功能,但不确定如何......

这是代码:

const Obj = {
"0":"Masaccio, Sandro Botticelli, Leonardo da Vinci",
"1":"Dali, Gaudí, Roberto Valconni",
};
const Obj3 = [];
var count = Obj[0].split('","').length;
var countOuter = Object.keys(Obj).length;
for( var i = 0; i < count; i++){

var string = [];

for( var j = 0; j < countOuter; j++){
string.push(Obj[j].split('","')[i]);
}

Obj3[i] = string;
}
console.log(Obj3);

正如我所说,代码运行良好,我的问题是,当转换字符串时,当 Obj 值中存在空值时,我该如何添加,只需将 null 更改为">

具有空值的示例:

const Obj = {
"0":"Masaccio, Sandro Botticelli, Leonardo da Vinci",
"1":null,
};
const Obj3 = [];
var count = Obj[0].split('","').length;
var countOuter = Object.keys(Obj).length;
for( var i = 0; i < count; i++){

var string = [];

for( var j = 0; j < countOuter; j++){
string.push(Obj[j].split('","')[i]);
}

Obj3[i] = string;
}
console.log(Obj3);

如您所见,由于空值,它抛出错误。我想要的结果应该是这样的:

[
"Masaccio, Sandro Botticelli, Leonardo da Vinci",
""
]

谢谢。

您只需要有条件地使用该值或在处理之前提供默认值,例如(Obj[i] || "")

const Obj = {
"0":null,
"1":null,
};
const Obj3 = [];
var count = Obj[0]? Obj[0].split('","').length: 0;
var countOuter = Object.keys(Obj).length;
for( var i = 0; i < count; i++){

var string = [];

for( var j = 0; j < countOuter; j++){
string.push((Obj[j] || "").split('","')[i]);
}

Obj3[i] = string;
}
console.log(Obj3);

我建议你可以使用名为is-empty的NPM包,你可以在其中检查对象,如

const output = (empty(Obj[i]) === true ? "", Obj[i])

除了NULL,它还可以检查undefinedfalse等。

相关内容

  • 没有找到相关文章