我具有以下值。 我有3个变量:A,B,C。 如果这三个值如下所示:
this.A= "1";
this.B= "2";
this.C= "3";
则预期的数组为:
let D=[{id:"1"},{id:"2"},{id:"3"}]
如果值如下:
this.A= "1";
this.B="" or null;
this.C= "3";
则预期的数组为:
let D=[{id:"1"},{id:"3"}]
答案 0 :(得分:1)
您可以利用:
Array.filter
过滤出空值和空值,以及Array.map
以获取所需的格式。它变成:
let D = [this.A, this.B, this.C]
.filter(val => !['', null].includes(val))
.map(val => ({id: val}));
演示(在这种情况下为空字符串):
class Foo {
constructor() {
this.A = "1";
this.B = "";
this.C = "3";
let D = [this.A, this.B, this.C]
.filter(val => ![undefined, null, ''].includes(val))
.map(val => ({id: val}));
console.log(D);
}
}
new Foo();
答案 1 :(得分:1)
除了Jetos出色的答案外,还可以使用Array.reduce。
const D = [this.A, this.B, this.C]
.reduce((acc, curr) => curr === null ? acc : acc.concat([{id: curr}]), [])