Javascript 将坐标数组展平为单个数组

Javascript 将坐标数组展平为单个数组,javascript,Javascript,我见过这个不成功的问题。不确定此查询是否属于同一个漏洞。我想知道这对于坐标数组是否可行。e、 g var arraysections = [[ [480, 200], [580, 400], [680, 100] ], [[680, 100], [180, 300], [280, 100], [380, 400] ]]; 成为 var singlearray = [ [480, 200], [580, 400], [680, 100], [680, 1

我见过这个不成功的问题。不确定此查询是否属于同一个漏洞。我想知道这对于坐标数组是否可行。e、 g

var arraysections = [[
  [480, 200],
  [580, 400],
  [680, 100]
],
 [[680, 100],
  [180, 300],
  [280, 100],
  [380, 400]
]];
成为

var singlearray = [
  [480, 200],
  [580, 400],
  [680, 100],
  [680, 100],
  [180, 300],
  [280, 100],
  [380, 400]
];

我需要
arraysections
查看各个路径,需要
singlearray
查看完整的点列表。谢谢你的提示。

还是一样。您可以使用
concat
合并多个数组。您可以通过在对象上循环来手动执行此操作:

var singlearray = [];
for (var i = 0; i < arraysections.length; i++) {
    singlearray = singlearray.concat(arraysections[i]);
}

后者基本上通过调用
[].concat(arraysections[0]、arraysections[1]、…)
工作。
apply
的第一个参数是作为
this
使用的数组对象(这里可以使用空数组),第二个参数是传递给
concat
的参数数组。由于concat可以一次组合多个数组,而且
arraysections
已经是一个数组数组,因此我们可以在这里进行操作。

它仍然是一样的。您可以使用
concat
合并多个数组。您可以通过在对象上循环来手动执行此操作:

var singlearray = [];
for (var i = 0; i < arraysections.length; i++) {
    singlearray = singlearray.concat(arraysections[i]);
}

后者基本上通过调用
[].concat(arraysections[0]、arraysections[1]、…)
工作。
apply
的第一个参数是作为
this
使用的数组对象(这里可以使用空数组),第二个参数是传递给
concat
的参数数组。由于concat可以一次组合多个数组,而且
arraysections
已经是一个数组数组,因此我们可以在这里进行操作。

这很简单,您只需执行以下操作:

var singlearray = [].concat.apply([], arraysections);
  • Concat接受多个数组来连接
  • Apply接受参数数组作为第二个参数

  • 这允许您将所有内容传递到concat,而无需迭代arraysections。

    这很简单,您只需执行以下操作:

    var singlearray = [].concat.apply([], arraysections);
    
  • Concat接受多个数组来连接
  • Apply接受参数数组作为第二个参数

  • 这允许您将所有内容传递到concat,而无需迭代arraysections。

    优化@poke的答案。通过使用优化for循环的需要,即

    var arraysections=[[
    [480, 200],
    [580, 400],
    [680, 100]
    ],
    [[680, 100],
    [180, 300],
    [280, 100],
    [380, 400]
    ]];
    var singlearray=arraysections.reduce(函数(p,c){
    返回p.concat(c);
    } );
    
    log(单数组)优化@poke的答案。通过使用优化for循环的需要,即

    var arraysections=[[
    [480, 200],
    [580, 400],
    [680, 100]
    ],
    [[680, 100],
    [180, 300],
    [280, 100],
    [380, 400]
    ]];
    var singlearray=arraysections.reduce(函数(p,c){
    返回p.concat(c);
    } );
    
    log(单数组)我知道这不能回答你的问题,但我最近一直在使用下划线,并且发现它对于这样的场合非常有用:tvm的家伙。勾选@poke可获得第一反应和全面性,但你们都在按钮上。我知道这并不能回答你们的问题,但我最近一直在使用下划线,并发现它对tvm这类场合非常有用。勾选@poke表示第一反应和全面性,但你们都在按钮上。