Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Слияние вложенных массивов в 1 массив (https://javascript.ru/forum/misc/69218-sliyanie-vlozhennykh-massivov-v-1-massiv.html)

Patron 06.06.2017 22:39

Ааа всё понял прошу прощения за оплошность я код рони запустил сейчас запущу тот что короче :)

laimas 06.06.2017 22:41

Ну это будут не 1, 2, 3, ... в массиве, а "1", "2", "3", ..., то есть строковый тип данных. Если в дальнейшем потребуется сложение элементов массива, то 1 + 2 = 3, а вот "1" + "2" = "12".

Patron 06.06.2017 22:49

Всем Большое спасибо за ответы! Ответы реально классные!

Patron 06.06.2017 22:57

laimas,
Я понял ты написал ф-цию которая возвращает эту же строку с унарным плюсом тем самым делающую строковое представление намбером и применил мэп чтоб пройтись по массиву. Мощное решение. Спасибо за ответы.

laimas 06.06.2017 23:01

Цитата:

Сообщение от Patron
Я понял ты написал ф-цию

я не писал функций, это все уже есть готовое. :)

ruslan_mart 07.06.2017 01:21

var arr = [[1,2,3],[[4],[5,[6,7],[8,9]],10]];

var i = 10;
while(i--) arr = Array.prototype.concat.apply([], arr);

alert(JSON.stringify(arr));

рони 07.06.2017 01:24

Ruslan_xDD,
Цитата:

Сообщение от Ruslan_xDD
var i = 10;

откуда?

рони 07.06.2017 01:36

Ruslan_xDD,
:)
var arr = [[1,2,3],[[4],[5,[6,7],[8,9]],10]];
function fn(a) {
    for (; a.length != (a = [].concat.apply([], a)).length;);
    return a
};
alert(JSON.stringify(fn(arr)));

рони 07.06.2017 01:50

:)
вариант с рекурсией
var arr = [[1,2,3],[[4],[5,[6,7],[8,9]],10]];
function fn(b) {
    var a = [].concat.apply([], b);
    return b.length != a.length ? fn(a) : a
};
alert(JSON.stringify(fn(arr)));

SV0L0CH 07.06.2017 10:00

console.log(JSON.parse("[" + [[1,2,3],[[4],[5,[6,7],[8,9]],10]].toString() + "]"))


Часовой пояс GMT +3, время: 04:53.