使用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嗎? –