从多维数组

时间:2016-10-04 22:26:02

标签: javascript arrays multidimensional-array

使用JavaScript,从多维数组中获取所有X列表并放入新数组的最佳方法是什么?如果可能,我想使用reduce或map?这个过程有一个术语,我应该像数学过程一样知道吗?

[{x:0,y:8,z:-1}, {x:1, y:8.5, z:-0.5}, {x:2, y:9, z:0}]

并且很晚才添加(如果可能的话,更喜欢使用此解决方案):

[[0,8,-1], [1, 8.5, -0.5], [2, 9, 0]]

我如何得到x'

[0,1,2]

2 个答案:

答案 0 :(得分:1)

你走了。也许不那么聪明,但我相信你能理解那个剧本的每一行。

var arr = [{x:0,y:8,z:-1}, {x:1, y:8.5, z:-0.5}, {x:2, y:9, z:0}];
var array = [];
  for (var i = 0; i < arr.length; i++) {
    for (var key in arr[i]) {
      array.push(arr[i][key]);
      break;
    }
  }
console.log(array);

答案 1 :(得分:0)

    var points = [[0,8,-1], [1, 8.5, -0.5], [2, 9, 0]];
    var abscissas = points.reduce( (a,v)=> {a.push(v[0]); return a}, []);
    // abscissas array is now [0,1,2]

使用points处理reduce数组中的每个条目(根据要求)推送点数&#39; x-纵坐标(v[0])到累积数组上作为前一个值传递。

必须有多种方法可以做到这一点,使用Array.prototype.map比使用reduce更简单:

    var abscissas = points.map( (v)=>v[0])

我将数学过程称为&#34;投影到x轴上&#34;但数学家可能会有所不同。