Я считаю, что ваша цель следующая.
- Вы хотите получить значения из ячеек «C2: C28» и хотите создать объект, ключ и значение которого совпадают.
Для этого как с этой модификацией? Аргументы Object.assign()
: Object.assign(target, ...sources)
. Таким образом, в вашем скрипте требуется использовать nameList
из let nameList = {}
как nameList = Object.assign(nameList, name)
.
From:
let nameList;
for (let i = 0; i < names.length; i++){
if (names[i] !== ""){
let name = {[names[i]]:names[i]};
nameList = Object.assign(name);
}
}
To:
let nameList = {}; // Modified
for (let i = 0; i < names.length; i++){
if (names[i] !== ""){
let name = {[names[i]]:names[i]};
nameList = Object.assign(nameList, name); // Modified
}
}
Или, в качестве другого шаблона, когда используется reduce
, следующий сценарий также может возвращать то же значение с измененным выше сценарием.
const nameList = ws.getRange(2, 3, ws.getLastRow() - 1).getValues()
.reduce((o, [e]) => {
if (e != "") Object.assign(o, {[e]: e});
return o;
}, {});
Ссылка: