javascript - 使用 Javascript 根据其他键的存在显示 JSON 值

标签 javascript html angularjs json

我是 JavaScript 的新手,尝试了下面的代码但无法获得它。我浏览了许多其他帖子,但没有用。

输出:检查是否存在 AUTO 损坏。如果是,则获取计数并显示 First & Last。

var myObj, i, x = "";
myObj = {
  "Initial": {
    "claim": [{
      "first": "abc",
      "last": "xyz",
      "damage": {
        "auto": true,
        "manual": true
      }
    }, {
      "first": "mne",
      "last": "odc",
      "damage": {
        "manual": true
      }
    }, {
      "first": "svc",
      "last": "tre",
      "damage": {
        "auto": true
      }
    }, {
      "first": "tre",
      "last": "hdf",
      "damage": {}
    }]
  }
}

var myObj = myObj.Initial.claim;

console.log(myObj);

for (i = 0; i < myObj.length; i++) {
  x += myObj.first[i] + "<br>";
  x += myObj.damage.auto[i] + "<br>";
}

document.getElementById("demo").innerHTML = x;
<p id="demo"></p>

最佳答案

首先myObj.Initial.claim是一个数组而不是对象,最好将它命名为myArr而不是myObj

在访问可能存在或不存在的对象属性之前,您必须先使用 myObj.hasOwnProperty 方法检查它。

var myObj, i, x = "";
myObj = {
  "Initial": {
    "claim": [
      {
        "first": "abc",
        "last": "xyz",
        "damage": {
          "auto": true,
          "manual": true
        }
      }, 

      {
        "first": "mne",
        "last": "odc",
        "damage": {
          "manual": true
        }
      },

      {
        "first": "svc",
        "last": "tre",
        "damage": {
          "auto": true
        }
      }, 

      {
        "first": "tre",
        "last": "hdf",
        "damage": {}
      }
    ]
  }
}

var myArr = myObj.Initial.claim;

console.log(myArr);

for (i = 0; i < myArr.length; i++) {
  x += myArr[i].first + "<br>";

  if(myArr[i].damage.hasOwnProperty("auto")) {
    x += myArr[i].damage.auto + "<br>";
  }
}


document.getElementById("demo").innerHTML = x;
<p id="demo"></p>

关于javascript - 使用 Javascript 根据其他键的存在显示 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42184937/

相关文章:

javascript - 将 PHP 代码附加到 HTML 输入占位符?

mysql - 在 Google Cloud 上部署移动网络应用

javascript - 将现有的 JS 代码包装为 Angularjs 服务

javascript - 这可能吗?仅使用单行 JavaScript 正则表达式

javascript - javascript中两个按钮冲突

javascript - 解决路径问题,js文件连接不上

javascript - HTML/CSS/JS - 自适应网格布局?

html - 使用 flexbox 为 li 添加边距

javascript - 如何使用 ui-router 在 Angular 1.5 中默认加载默认子路由

javascript - 客户端无法访问自己的服务器端点