遍历当前项目值

Looping through current item values

我有一份本质上是 SQL 模型形式的问卷。

用户回答问题,创建项目。加载项目后,如何循环遍历这些值?我是 JS 和 GAM 的新手,但我试过下面的方法,似乎只能得到字段的名称,而不是它的值。

function generateScore(){
  ds = app.datasources.Checklist.item;
  for (var x in ds){
    if (ds.x === 'Safe'){
      console.log("Passed");
    } else {
      console.log("Failed"); 
    }
  }
}

输出将是 'Fail',因为 'ds.x' 只返回字段的名称而不是它的值。

这可能真的很简单,但是有人可以指导我正确的方向吗? 谢谢

简短回答:在您的函数中将 ds.x 更改为 ds[x]:

function generateScore(){
  ds = app.datasources.Checklist.item;
  for (var x in ds){
    if (ds[x] === 'Safe'){
      console.log("Passed");
    } else {
      console.log("Failed"); 
    }
  }
}

TL;DR

其他方法 循环对象的值。 让我们假设以下对象:

const obj = {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
};

您可以使用 Object.keys 语法。

JS ES6 答案:

Object.keys(obj).map(key => obj[key]) // returns an array of values --> ["value1", "value2", "value3"]

Object.keys(obj).map(key => {
  console.log(obj[key])
}) 

// logs all values one by one --> "value1" "value2" "value3"

JS ES5 答案:

Object.keys(obj).map(function(key) { 
   console.log(obj[key])
});