Два способа создать объект из массива

Вводные данные

Есть набор значений следующего вида:

из которого необходимо сделать объект вида A:1 и так далее

Способ 1 — через forEach

function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getSheetByName('ArrToObj');
const dataArr = ws.getDataRange().getValues();
const objData = {};
dataArr.forEach(elem => objData[elem[0]] = elem[1]);
console.log(objData);
}

где

const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getSheetByName('ArrToObj');
const dataArr = ws.getDataRange().getValues();
стандартный алгоритм получения данных с листа ArrToObj в массив dataArr

далее создаем новый объект const objData = {}; и методом forEach dataArr.forEach(elem => objData[elem[0]] = elem[1]); проходимся по каждому элементу массива ( а у нас это массив массивов поэтому [elem[0]] = elem[1]) и заполняем объект.

Способ 2 — встроенный метод класса Object

function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const ws = ss.getSheetByName('ArrToObj');
const dataArr = ws.getDataRange().getValues();
const objData = Object.fromEntries(dataArr);
console.log(objData);
}

По сути разница в одной строке:

const objData = Object.fromEntries(dataArr);

метод Object.fromEntries преобразует список пар ключ-значение в объект, то есть как раз наш массив массивов.

Добавить комментарий