2016-07-20 5 views
1

У меня есть массивы вроде [a], [a,b], [a,b,c] и так далее.JavaScript: Преобразование [a, b, c] в [a] [b] [c]

Как преобразовать их в [a], [a][b], [a][b][c] и так далее?

Пример:

var arr = [1,2,3,4]; 
    arr = do(arr); // arr = arr[1][2][3][4] 
+0

Выражение '[A] [B] [с]' означает «Создать' Array':.. '[А]' Index, что массив со значением 'b' индекс * that * значение со значением 'c'." Это то, чего вы хотите достичь? –

+0

@ this-vidor Я имею в виду 3D, 4D, ... массив, если вы имеете в виду это. –

ответ

9

Вы можете сопоставить его с Array#map .Это возвращает массив обрабатываемых значений.

ES6

console.log([1, 2, 3, 4].map(a => [a]));

ES5

console.log([1, 2, 3, 4].map(function (a) { 
 
    return [a]; 
 
}));

Хотя вопрос немного неясно, и я думаю, что ОП нуждается в р ossibly строка в желаемой форме, тогда это сделало бы это.

console.log([1, 2, 3, 4].reduce(function (r, a) { 
 
    return r + '[' + a + ']'; 
 
}, 'arr'));

+0

Что такое 'а'? –

+0

'a' - переменная для элемента массива. –

+2

Функция/lambda выражение внутри карты вызывается один раз для каждого элемента в массиве 'arr'. Каждый раз, когда 'a' ссылается на« текущий »элемент для этого вызова. –

4

Функциональное:

использование .map как этот

[1,2,3,4].map(i => [i])

ИТЕРАЦИОННОЕ:

var list = [1, 2, 3, 4], result = []; 

for (var i=0; i<list.length; i++) { 
    result.push([list[i]]); 
} 
-1

function map(arr){ 
 
    var aux = []; 
 
    for(var i=0; i<arr.length;++i){ 
 
    var aux2 = []; 
 
    aux2.push(arr[i]); 
 
    aux.push(aux2); 
 
    } 
 
    return aux; 
 
}

1

Если я вас правильно понимаю, вы конвертируете один массив размерности мульти двумерный массив. Для этого

var inputArray = [1,2,3,4]; 
var outputArray = []; 
for(var i=0;i<inputArray.length;i++) 
{ 
    outputArray.push([inputArray[i]]) 
} 
Смежные вопросы