Как объединить 3 массива в один с одинаковым индексом - JavaScript - PullRequest
2 голосов
/ 08 мая 2020

Сейчас у меня есть 3 массива, которые я хотел бы объединить вместе, чтобы они отображались как объект.

1. dataArr = [ 0. 123323, 1. 8930, 2. "9,321", 3. 103001 ]

2. titleArr = [ 0. "New", 1. "Old, 2. "Confirmed", 3. "Not Available"    ]

3. typeArr = [  0. "Online", 1. "In-Store" 2. "Walk In", 3. "Appointment"   ]

Я бы хотел, чтобы все они были одним массивом и имели массив объектов с одинаковым индексом например.

newArr = [0. { data: 123323 , title: "New", type: "Online"} 1. {data ... } ... ] 

Я попытался использовать метод сопоставления, который я получаю результаты для двух массивов, но третий массив typeArr вставляет массив из 4 объектов для каждого индекса, а не его соответствующий индекс.

Console.log = [ 0. data: 123323, title: New, type: [ 0. "Online", 1. "In-Store, 2. "Walk In" 3. "Appointment" ] ]

Вот мой код:

const combineArr = dataArr.map((data, index) => ({
        data,
        title: titleArr[index]
    }));

    const newArr = combineArr .map((type, index) => ({
        type,
        data: typeArr[index]
    }));

В этом случае я использую две отдельные функции сопоставления в попытке создать новый массив. Я считаю, что здесь я запутался. Есть ли способ обработать все 3 массива в одной функции сопоставления?

1 Ответ

1 голос
/ 08 мая 2020

Предполагая тот же порядок индекса, вы можете использовать функцию map следующим образом:

let dataArr = [ 123323, 8930, 9321, 103001 ],
    titleArr = [ "New", "Old", "Confirmed", "Not Available"    ],
    typeArr = [  "Online", "In-Store", "Walk In", "Appointment"   ],
    result = dataArr.map((data, i) => ({data, title: titleArr[i], type:  typeArr[i]}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...