Gdy początkowe tablice zawierają niezdefiniowane elementy, ten kod działa świetnie:

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);

Co powinienem zmienić, aby ten kod działał dla początkowych tablic, które mogą zawierać elementy null i elementy niezdefiniowane:

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);

Chciałbym uzyskać ten sam wynik, co w pierwszym przykładzie, ale dla tablic początkowych, które mogą zawierać elementy null i niezdefiniowane. Spodziewany wynik:

[ [ "title", "t1", null, "t3" ] ]
0
user10584873 24 listopad 2018, 14:37

1 odpowiedź

Najlepsza odpowiedź

Możesz pominąć wartości undefined i null.

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);
1
Nina Scholz 24 listopad 2018, 15:01