如何对包含null和undefined元素的数组使用assign函数?

时间:2018-11-24 11:37:49

标签: javascript arrays

当初始数组包含未定义的元素时,此代码非常有用:

var x = [];
x[0] = ["title","t1"];
var y = []; y[0] = []; y[0][3]="t3";

console.log(x);
console.log(y);

y.forEach((subarr, i) => {
  Object.assign(x[i], subarr);
});

console.log(x);

要使此代码适用于可能包含空元素和未定义元素的初始数组,我应该做些什么改变

var x = [];
x[0] = ["title","t1"];
var y = []; y[0] = [null,undefined,null,"t3"];

console.log(x);
console.log(y);

y.forEach((subarr, i) => {
  Object.assign(x[i], subarr);
});

console.log(x);

我想得到与第一个示例相同的结果,但对于可能包含null和undefined元素的初始数组。 预期结果:

[ [ "title", "t1", null, "t3" ] ]

1 个答案:

答案 0 :(得分:2)

您可以跳过undefinednull值。

var x = [["title", "t1"]],
    y = [[null, undefined, null, "t3"]];

y.forEach((subarr, i) => subarr.forEach((v, j) => {
    if (v === undefined || v === null) return;
    x[i] = x[i] || [];
    x[i][j] = v;
}));

console.log(x);