使用JavaScript,从多暗数组中获取所有X的列表并将其放入新数组中的最佳方式是什么?如果可能,我想使用reduce或map?这个过程有没有一个术语,我应该像数学过程那样意识到?从多维数组中获取X的数组
[{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]
使用JavaScript,从多暗数组中获取所有X的列表并将其放入新数组中的最佳方式是什么?如果可能,我想使用reduce或map?这个过程有没有一个术语,我应该像数学过程那样意识到?从多维数组中获取X的数组
[{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]
在这里你走。也许不那么聪明,但我相信你可以理解该脚本的每一行。
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);
这将返回第一个键,它不一定是'x'(考虑'[... {y:5,x:1} ...') – georg
对象不保证属性的顺序,您的代码需要第一个属性来自每个对象。 –
同意。我认为他应该精确。因为只有'X'可以通过两种方式来理解。首先,他只需要'X's,而第二种方法 - 他只需要每个对象的第一个关键值。 @georg –
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
(如需要)推点X坐标(v[0]
)到作为以前的值传递的累积阵列。
必须有这样做的,使用Array.prototype.map
比使用reduce
简单的方法很多:
var abscissas = points.map((v)=>v[0])
我会打电话的数学过程“投射到x轴”,而是一个数学家可能会有所不同。
啊,查看它,并且使用[[1],[1],[1]]乘法的投影在我猜测的JavaScript中可能是不可能的。 –
ahh谢谢。现在修复它 –
'console.log([{x:0,y:8,z:-1},{x:1,y:8.5,z:-0.5},{x:2,y:9,z :0}]。map(e => ex));' –
是JavaScript吗? –