我有这段代码,效果非常好,我不想改变任何东西,只是添加一个我需要的新功能,但不确定如何......
这是代码:
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,它还可以检查undefined
,false
等。