Javascript 如何从Google工作表中的列值分配对象?
我有一个谷歌表格,在一列中有一些数据。 如何将这些值分配给新对象,如Javascript 如何从Google工作表中的列值分配对象?,javascript,google-apps-script,google-sheets,arrow-functions,Javascript,Google Apps Script,Google Sheets,Arrow Functions,我有一个谷歌表格,在一列中有一些数据。 如何将这些值分配给新对象,如{'value[0]':value[0],'value[1]':value[1],…,'value[i]':value[i]} 我编写了这个脚本,但它仅从名称的最后一个值中分配pair: function getIngredientsList() { const url = "SPREADSHEET_URL"; const ss = SpreadsheetApp.openByUrl(url); c
{'value[0]':value[0],'value[1]':value[1],…,'value[i]':value[i]}
我编写了这个脚本,但它仅从名称的最后一个值中分配pair:
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;
}
函数getIngredientsList(){
const url=“电子表格\u url”;
const ss=SpreadsheetApp.openByUrl(url);
const ws=ss.getSheetByName('Base');
const name=ws.getRange(2,3,ws.getLastRow()-1).getValues().map(a=>a[0]);
让我们列出名单;
for(设i=0;i
我错在哪里以及如何纠正它?我相信你的目标如下
- 您希望从单元格“C2:C28”中检索值,并希望创建一个键和值相同的对象
Object.assign()
的参数是Object.assign(目标,…源)
。因此,在脚本中,需要像nameList=Object.assign(nameList,name)
一样使用nameList={}
的nameList
发件人:
参考:
reduce
方法:
var name=['ABC'、'XYZ'、'PQR'];
var结果=名称。减少((acc,elem)=>{
acc[elem]=elem;
返回acc;
},{});
控制台日志(结果)代码>您可以与预期输出共享虚拟数据吗?
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
}
}
const nameList = ws.getRange(2, 3, ws.getLastRow() - 1).getValues()
.reduce((o, [e]) => {
if (e != "") Object.assign(o, {[e]: e});
return o;
}, {});