【问题标题】:Targeting an array inside of an array in JSON with Javascript使用 Javascript 在 JSON 中定位数组内部的数组
【发布时间】:2020-07-16 16:54:06
【问题描述】:

我的目标是我认为是 json 数组中的一个数组。我能够遍历每个集合,但似乎无法对每个 2 级数组做任何有意义的事情。

  var myObj, i, x = "";
  myObj = {
    "rows": [
      [
        "Provider296",
        "Clicked",
        "Email",
        "2"
      ],
      [
        "Provider296",
        "Clicked",
        "Website",
        "3"
      ]
    ]
  };

  for (i in myObj.rows) {
    x += myObj.rows[i] + "<br>";
  }
  document.getElementById("demo").innerHTML = x;

这会产生:

Provider296,Clicked,Email,2
Provider296,Clicked,Website,3

我想进一步分解它,以便最终得到一个可能如下所示的表格:

<table>
  <tr>
    <td>Email</td>
    <td>2</td>
  </tr>
  <tr>
    <td>Website</td>
    <td>3</td>
  </tr>
</table>

有什么想法吗?

【问题讨论】:

  • 你需要的输出是什么?你想用每个内部数组的最后两个元素创建一个表吗?
  • 是的!这正是我想做的。最后两个元素是可预测且一致的。

标签: javascript jquery arrays json


【解决方案1】:

使用 ES6,

您可以执行以下操作

html

<table id="out"></table>

Javascript

const obj = {
    "rows": [
    [
    "Provider296",
    "Clicked",
    "Email",
    "2"
    ],
    [
    "Provider296",
    "Clicked",
    "Website",
    "3"
    ]
    ]
}

let out = ''
obj.rows.forEach( item => {
    out += `<tr><td>${item[2]}</td><td>${item[3]}</td></tr>`
});

document.getElementById("out").innerHTML = out

console.log( out )

【讨论】:

  • 效果很好,我今天学到了一些新东西。感谢您的时间和精力!
【解决方案2】:

const myObj = {
  "rows": [
    [
      "Provider296",
      "Clicked",
      "Email",
      "2"
    ],
    [
      "Provider296",
      "Clicked",
      "Website",
      "3"
    ]
  ]
};

const x = myObj.rows.map(([,,third,fourth]) => {
  return "<tr><td>"+third+"</td><td>"+fourth+"</td></tr>"
}).reduce((acc, value) => { return acc + value }, '');

document.getElementById("demo").innerHTML = x;
table {
  border: 1px solid red;
}
&lt;table id="demo"&gt;&lt;/table&gt;

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    相关资源
    最近更新 更多