@coder56

Как слить элементы вложенных массивов в одну строку?

function func(arr) {
	for (let elem of arr) {
		if (typeof elem == 'object') {
			func(elem);
		} else {
			console.log(elem);
		}
	}
}

func(['a', ['b', 'c', 'd'], ['e', 'f', ['g', ['j', 'k']]]]);

именно в этом примере нужно как-то слить элементы массива в одну строку
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const join = val => Array.isArray(val) ? val.map(join).join('') : val;

или

const join = arr => ''.concat(...arr.flat(Infinity));

или

const join = arr => arr.reduce((acc, n) => acc + (n instanceof Array ? join(n) : n), '');

или

function join(arr) {
  const result = [];

  for (const stack = [ arr ]; stack.length;) {
    const n = stack.pop();
    if (n?.constructor === Array) {
      stack.push(...[...n].reverse());
    } else {
      result.push(n);
    }
  }

  return result.join('');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы