В этой статье мы узнаем, как преобразовать двумерный массив в объект. Двумерный массив может содержать любое количество строк и двух столбцов.
Пример:
Input: [
["John", 12],
["Jack", 13],
["Matt", 14],
["Maxx", 15]
]
Output: {
"John": 12,
"Jack": 13,
"Matt": 14,
"Maxx": 15
}
Для решения этой проблемы можно использовать следующие подходы.
Подход 1:
При таком подходе мы создаем пустой объект и используем Array.forEach() метод итерации по массиву. На каждой итерации мы вставляем первый элемент дочернего массива в объект в качестве ключа, а второй элемент-в качестве значения. Затем он возвращает объект после итераций.
Пример:
function arr2obj(arr) {
// Create an empty object
let obj = {};
arr.forEach((v) => {
// Extract the key and the value
let key = v[0];
let value = v[1];
// Add the key and value to
// the object
obj[key] = value;
});
// Return the object
return obj;
}
console.log(
arr2obj([
["John", 12],
["Jack", 13],
["Matt", 14],
["Maxx", 15],
])
);
Подход 2:
В этом подходе мы будем использовать Array.reduce() метод и инициализируйте накопитель пустым объектом. На каждой итерации мы присваиваем текущее значение в качестве значения ключа аккумулятора и возвращаем аккумулятор. Затем он возвращает объект после итераций.
Пример:
function arr2obj(arr) {
return arr.reduce(
(acc, curr) => {
// Extract the key and the value
let key = curr[0];
let value = curr[1];
// Assign key and value
// to the accumulator
acc[key] = value;
// Return the accumulator
return acc;
},
// Initialize with an empty object
{}
);
}
console.log(
arr2obj([
["Eren", "Yeager"],
["Mikasa", "Ackermann"],
["Armin", "Arlelt"],
["Levi", "Ackermann"],
])
);
Выход:
{ Eren: 'Yeager', Mikasa: 'Ackermann', Armin: 'Arlelt', Levi: 'Ackermann' }
Подход 3:
В этом подходе мы сначала выравниваем массив, используя Array.flat() метод, так что мы получаем одномерный массив. Затем мы можем создать пустой объект и повторить итерацию массива, чтобы назначить равномерно расположенные значения в качестве ключа объекта и странно расположенные значения в качестве значения.
Пример:
function arr2obj(arr) {
// Flatten the array
arr = arr.flat();
// Create an empty object
let obj = {};
for (let i = 0; i < arr.length; i++) {
if (i % 2 == 0) {
// Extract the key and the value
let key = arr[i];
let value = arr[i + 1];
// Assign the key and value
obj[key] = value;
}
}
return obj;
}
console.log(
arr2obj([
["Max", 19],
["Chloe", 20],
["Nathan", 22],
["Mark", 31],
])
);
Выход:
{ Max: 19, Chloe: 20, Nathan: 22, Mark: 31 }