단일 열에 일부 데이터가 포함 된 Google 시트가 있습니다. 이러한 값을 새 개체에 할당하는 방법은 {'value[0]':value[0], 'value[1]':value[1],..., 'value[i]':value[i]}
무엇입니까?
이 스크립트를 작성했지만 마지막 값 names
에서만 쌍을 할당합니다 .
function getIngredientsList() {
const url = "SPREADSHEET_URL";
const ss = SpreadsheetApp.openByUrl(url);
const ws = ss.getSheetByName('Base');
const names = ws.getRange(2, 3, ws.getLastRow() - 1).getValues().map(a => a[0]);
let nameList;
for (let i = 0; i < names.length; i++){
if (names[i] !== ""){
let name = {[names[i]]:names[i]};
nameList = Object.assign(name);
}
}
return nameList;
}
내가 틀린 곳과 그것을 고치는 방법?
나는 당신의 목표를 다음과 같이 믿습니다.
이를 위해이 수정은 어떻습니까? 의 인수는 Object.assign()
입니다 Object.assign(target, ...sources)
. 따라서 스크립트에서 nameList
of let nameList = {}
는 nameList = Object.assign(nameList, name)
.
let nameList;
for (let i = 0; i < names.length; i++){
if (names[i] !== ""){
let name = {[names[i]]:names[i]};
nameList = Object.assign(name);
}
}
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;
}, {});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다