JavaScript:将3D数组连接到2D数组中,将值包装在html标记中

JavaScript:将3D数组连接到2D数组中,将值包装在html标记中,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,3D阵列 // Array var x = { "letter": [ "a", "b", "c", "d", "e", "f", "g", "h", "i" ], "line": [ { "data": [ 306, 830, 377, 651, 547, 369, 300, 148, 494 ] }, { "data": [ 88, 339, 298, 87, 96, 108, 93, 182, 64 ] }, { "data": [ 3157, 2943,

3D阵列

// Array

var x = {
  "letter": [ "a", "b", "c", "d", "e", "f", "g", "h", "i" ],
  "line": [
    { "data": [ 306, 830, 377, 651, 547, 369, 300, 148, 494 ] },
    { "data": [ 88, 339, 298, 87, 96, 108, 93, 182, 64 ] },
    { "data": [ 3157, 2943, 2724, 2116, 3700, 2980, 2449, 2494, 1057 ] },
    { "data": [ 2006, 1921, 2030, 615, 273, 415, 680, 286, 730 ] }
    ]
  };
某些变量

// Variables

var line = x.line;
var data = [];
for (var i = 0; i < line.length; i++) {
  data.push(line[i].data);
  }
但我希望这样做的方式不仅可以处理4个数据对象,而且可以处理任意数量的原始数据对象
x


您可以看到,我使用了其中的4个对象,但不知道如何通过编程实现。如果你能使用我现有的变量,我将不胜感激!谢谢。

您可以使用
map
。首先将数据放入多维数组,然后为每个数字创建
li

var listData = x.line
  .map(function(obj){return obj.data})
  .map(function(ns){return '<li>'+ ns.join('</li><li>') +'</li>'})
var listData=x.line
.map(函数(obj){return obj.data})
.map(函数(ns){return'
  • '+ns.join('
  • ')+'
  • '})

    这将适用于任意数量的数据对象,其中包含任意数量的项目数组。

    是否希望
  • 306>
  • ..
  • 88
  • ..
    ?@AmitJoki No;请参阅代码笔。如果您将所需的输出添加到问题中,则会更容易提供帮助;必须在别处查看演示是不必要的步骤:演示是为了支持您的问题,而不是取代它们。@DavidThomas+1@DavidThomas我尝试通过代码片段工具添加代码,但它不起作用。这就是我最初包含代码笔的原因。现在,根据您的建议,我已经用我的代码和所需的块输出更新了问题。
    listData == [
    "<li>306</li><li>830</li><li>377</li><li>651</li><li>547</li><li>369</li><li>300</li><li>148</li><li>494</li>",
    "<li>88</li><li>339</li><li>298</li><li>87</li><li>96</li><li>108</li><li>93</li><li>182</li><li>64</li>",
    "<li>3157</li><li>2943</li><li>2724</li><li>2116</li><li>3700</li><li>2980</li><li>2449</li><li>2494</li><li>1057</li>",
    "<li>2006</li><li>1921</li><li>2030</li><li>615</li><li>273</li><li>415</li><li>680</li><li>286</li><li>730</li>"
    ]
    
    var listData = x.line
      .map(function(obj){return obj.data})
      .map(function(ns){return '<li>'+ ns.join('</li><li>') +'</li>'})