Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript循环遍历对象数组并返回第一个值_Javascript_Arrays_Object_For Loop_Google Apps Script - Fatal编程技术网

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]]);