2016-10-04 4 views
0

Использование JavaScript, что является лучшим способом получить список всех X из многоуровневого массива и разместить его в новом массиве? Я хочу использовать либо сокращение, либо карту, если это возможно? Есть ли термин для этого процесса, о котором я должен знать, как о математическом процессе?Получите массив 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]]

Как получить только х годов:

[0,1,2] 
+0

ahh thanks. исправление его теперь –

+2

'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)); ' –

+0

Это JavaScript? –

ответ

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

Это возвращает первый ключ, который не обязательно является 'x' (см.' [... {y: 5, x: 1} ... ') – georg

+1

И объекты не гарантируют порядок собственности, а ваш код берет первое свойство от каждого объекта. –

+1

Согласовано. Думаю, он должен это уточнить. Потому что только «Х» можно понять двумя способами. Во-первых, он хочет только «Х», а второй способ - он хочет только первое ключевое значение от каждого объекта. @georg –

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] 

обрабатывает каждый элемент в массиве с использованием pointsreduce (по запросу), толкая рентгеновские ординаты точек (v[0]) на накопление массива, переданного в качестве предыдущего значения.

Там должно быть много способов сделать это и с помощью Array.prototype.map проще, чем при использовании reduce:

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

Я бы назвал математический процесс «проекцию на ось х», но математик может отличаться.

+0

А, посмотрел, а проекция с использованием [[1], [1], [1]] умножения, вероятно, невозможна в JavaScript, я предполагаю. –

Смежные вопросы