Javascript循环遍历对象数组并返回第一个值
我创建了一个函数,该函数应该循环遍历一个对象数组并返回每个对象的第一个值Javascript循环遍历对象数组并返回第一个值,javascript,arrays,object,for-loop,google-apps-script,Javascript,Arrays,Object,For Loop,Google Apps Script,我创建了一个函数,该函数应该循环遍历一个对象数组并返回每个对象的第一个值 data = sheetData.map(v => v[Object.keys(v)[0]]); 函数getSheetSectionData(名称){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(名称); var sheetData=sheet.getDataRange().getValues(); var数据=[]; 对于(变量i
data = sheetData.map(v => v[Object.keys(v)[0]]);
函数getSheetSectionData(名称){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(名称);
var sheetData=sheet.getDataRange().getValues();
var数据=[];
对于(变量i=0;i }
我不确定您的意图是什么,但可能应该是这样的
function getSheetSectionData(name){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name);
var sheetData = sheet.getDataRange().getValues();
var data = [];
for (var i = 0; i < sheetData.length; i++){
var obj = {};
obj = sheetData[i][0];
data.push(obj);
}
return data;
}
然而,我们并不知道这次行动的初衷是什么。可能是这样的,临时对象确实需要某种中间转换,它是从MCVE中剥离出来的。您可以使用
object.keys
和Array#map
从每个对象中仅获取第一个键值
data = sheetData.map(v => v[Object.keys(v)[0]]);
工作示例:
var arr=[{foo:'bar',bar:'foo'},{foo:'war',bar:'foo'},{foo:'mar',bar:'foo'}],
res=arr.map(v=>v[Object.keys(v)[0]]);
控制台日志(res)代码>这个解决方案怎么样。希望有帮助
var sheetData=[{name:“Mike”,id:10},{name:“劳拉”,id:23},{name:“carl”,id:25},{name:“Lori”,id:23}];
var arr=[]
用于(表数据中的var i){
var someObject=sheetData[i];
arr.push(someObject[Object.keys(someObject)[0]]);
}
控制台日志(arr)代码>必须将return语句移到循环之外
函数getSheetSectionData(名称){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(名称),
sheetData=sheet.getDataRange().getValues(),
数据=[];
对于(变量i=0;i }
您只执行一次循环,然后通过返回值来中断循环。如果将其用作自定义函数,则所有答案都无效。@ZigMandel这是什么意思?首先确认您计划用作自定义函数(从单元格公式调用)为什么要创建新对象“obj”??没有必要那样做。你已经有东西回来了!!
data = sheetData.map(v => v[Object.keys(v)[0]]);