如何在不使用 Array.filter() 的情况下从我的 JSON 对象中获取特定值

How can I get a specific value from my JSON object without using Array.filter()?

本文关键字:对象 JSON 我的 获取 情况下 Array filter      更新时间:2023-09-26

rows下,我想检查一下我是否有Submit值和它后面的整数值。如何在不使用 Array.filter() 的情况下检索这两个值?Google Analytics JS api 不喜欢 filter 命令。

{
  "rows": [
        [
      "Load",
      "11"
    ],
    [
      "No Thanks",
      "7"
    ],
    [
      "NoThanks",
      "3"
    ],
    [
      "No_Thanks",
      "2"
    ],
    [
      "Results",
      "88"
    ],
    [
      "Sent",
      "1"
    ],
    [
      "Sign Up",
      "9"
    ],
    [
      "XOut",
      "161"
    ],
    [
      "Submit",
      "30"
    ]
  ]
}

只需使用 for 循环...

var submitFound
for(var i = 0; i < rows.length; i++) {
  var row = rows[i]
  if (row[0] === 'Submit') {
    submitFound = true
    break
  }
}
if (submitFound) // do stuff

假设您在问题中的结构被分配给 returnData:

var returnedData = {...}; //Structure from the question
var value = -1;
for(var i = 0; i < returnedData.rows.length; i++){
    var row = returnedData.rows[i];
    if (row[0] == 'Submit') {
        value = row[1];
        break;
    }
}
if (value > -1) {
    // Do whatever with the value
}

这是一个替代方案,如果您不想使用循环,请尝试以下操作:

// this object is simplified for test
var json={
  "rows": [
        [
      "Load",
      "11"
    ],
    [
      "Submit",
      "30"
    ]
  ]
};
var stringJson=JSON.stringify(json);
var valueOfSubmit= stringJson.match("'"Submit'"','"([^)]+)'"']")[1];
alert(valueOfSubmit);

此致敬意