从对象数组获取所有对象属性

时间:2018-11-16 22:01:08

标签: object google-apps-script

我正在尝试根据用户在Google表格中输入的内容创建物料清单。除最后一部分外,我没有收到任何错误,在该部分中,我尝试遍历对象数组并使用对象值替换Google文档上的文本。通过调用Object.value(),将引发以下错误。

  

TypeError:在对象函数Object(){[Object.Object的本机代码,arity = 1]}中找不到函数值。

我尝试使用其他对象方法,但是Object.value()是允许我从jambObj获取实际值的唯一方法。

//Create jamb cut list
function jambsCutList() {
var numberOfJambCuts;
var sizeOfJambCuts;
var jambOpenings;
var jambs = 1;
var jambObj = {};
var jambArr = [];

//Loop through the first three google sheet colums
for(var i = 5; i < values.length; i++) {
  numberOfJambCuts = values[i][0];
  sizeOfJambCuts = values[i][1];
  jambOpenings = values[i][2];

  jambObj = {cuts: numberOfJambCuts, size: sizeOfJambCuts, openings: 
  jambOpenings};
  jambArr.push(jambObj);
}

//Sort jambArr from largest cut size to smallest
jambArr.sort(function(a, b) {
  return parseInt(b.size) - parseInt(a.size);
});

//Problem Code
//Loop through an array of objects and print all properties to the doc
for (var j = 0; j < jambArr.length; j++){
  body.replaceText('##jambs' + jambs + '##', Object.value(jambArr[j]))
  jambs += 1;
 }
}

1 个答案:

答案 0 :(得分:2)

如评论中所述,GAS不支持Object.values,但它支持Object.keys,因此您可以遍历键以获取Object值的数组。

替换

Object.value(jambArr[j])

使用

Object.keys(jambArr[j]).map(function(e) {return jambArr[j][e]}).join(", ")