Объединение массива массивов с простым массивом - PullRequest
1 голос
/ 22 октября 2019

Я хотел бы объединить два массива в один, но индексы должны учитываться, поскольку данные являются динамическими.

Я пробовал это:

labels[0].forEach(element=>{
  labels[0]=(element.map((e, i) => e +','+ tableauCompare[i]));
})

, но я получаю две строки

Мой ввод:

[
    ["string1", "string2","string3"],
    ["string1b", "string2b","string3b"]
]

["string4", "string4b"]

Ожидаемый вывод:

[
    ["string1", "string2","string3","string4"],
    ["string1b", "string2b","string3b", "string4b"]
]

Я ожидаю новый массив, напримерпоследний, но я получаю массив с двумя строками

Ответы [ 2 ]

1 голос
/ 22 октября 2019

Вы можете просто использовать метод .map() для первого array и объединить каждый элемент с соответствующим элементом из массива compareTableau на index.

var labels = [
  ["string1", "string2", "string3"],
  ["string1b", "string2b", "string3b"]
];
var tableauCompare = ["string4", "string4b"];

var result = labels.map((el, i) => el.concat(tableauCompare[i]));

Демонстрация:

var labels = [
  ["string1", "string2", "string3"],
  ["string1b", "string2b", "string3b"]
];
var tableauCompare = ["string4", "string4b"];

var result = labels.map((el, i) => el.concat(tableauCompare[i]));

console.log(result);
1 голос
/ 22 октября 2019

Вместо map() вы можете использовать Array.prototype.push() и Array.prototype.concat() следующим образом:

var labels = [
    ["string1", "string2","string3"],
    ["string1b", "string2b","string3b"]
]
var tableauCompare = ["string4", "string4b"];
var res = [];
labels.forEach((element, i)=>{
  res.push(element.concat(tableauCompare[i]));
});
console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...