【问题标题】:Jquery Splitting 2D Array from JSON resultJquery从JSON结果中拆分二维数组
【发布时间】:2017-02-08 16:08:22
【问题描述】:

JSON_encode 结果示例

[{"Apparatus":"test123"},{"Equipment":"41324121"},{"Chemical":"314"},{"Apparatus":"4312"},{"Equipment":"134"},{"Chemical":"324"}]

我很难将 json_encode 结果(来自一个 php 页面)变成这样:

var data = 
["Apparatus", "test123"],
["Apparatus", "4312"],
["Equipment", "41324121"],
["Equipment", "134"],
["Chemical", "314"],
["Chemical","324"]

编辑:稍后一一调用。谢谢。

Edit2:它将用于 pdfmake 的桌面。 我预期的代码示例(更多详情:PDF Make

        body: [
      [ 'Type', 'Data' ],
      appdata_splits
    ]

【问题讨论】:

  • 我们也会遇到困难,因为您没有提供您尝试过的代码和您没有告诉我们为什么输出需要采用您的格式'建议。
  • 您建议的输出无效。我假设您刚刚错过了外部 [] 来创建二维数组?
  • 更新编辑。希望可以帮助解决问题。
  • 显示 php 并在那里修复它更有意义。

标签: jquery arrays json multidimensional-array


【解决方案1】:

要执行您需要的操作,您可以在原始数组上调用 map(),然后返回所需值的数组。试试这个:

var data = [{"Apparatus":"test123"},{"Equipment":"41324121"},{"Chemical":"314"},{"Apparatus":"4312"},{"Equipment":"134"},{"Chemical":"324"}]

var arr = data.map(function(o) {
  var k = Object.keys(o)[0];
  return [k, o[k]];
});
console.log(arr);

在上面的代码中,o 表示被迭代的原始数组中的对象。由于对象的键是动态的,我们必须使用Object.keys() 方法来检索它们的数组。 [0] 访问器检索其中的第一个,因为它保证存在给定您的示例数据。 o[k] 然后通过我们刚刚检索到的键从对象中检索值。

【讨论】:

  • 我看到了 .map() 但目前我很难理解它。我想要一个解释。
  • 我为你添加了逻辑解释。如果您仍然不清楚,我建议您研究 MDN 上的方法。
  • 谢谢。我回家后会试试的。编辑:MDN 部分太书呆子了,我无法理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多