partyzanx
@partyzanx

Как сделать аналог функции concat из библиотеки lodash?

Привет всем! Я сделал пару аналогов функции concat из библиотеки lodash с помощью reduce, concat

//////////////// concat(array, [values]) ////////////////
// Creates a new array concatenating array with any additional arrays and/or values.
 

function concat() {
  return new Array(arguments.length).fill().reduce((acc,_,i) => acc = acc.concat(arguments[i]), [])
}

// console.log(concat(1, 2, [3, 4], [[5]]));
// => [1, 2, 3, 4, [5]]
 
// console.log(concat([1]));
// => [1]

// 2 example


function concat2() { 
  return [].concat(...arguments)
}

console.log(concat2(1, 2, [3, 4], [[5]]));
// => [1, 2, 3, 4, [5]]
 
console.log(concat2([1]));
// => [1]


Вопрос такой, как сделать ещё такую функцию с помощью других методов, например, map, forEach и прочее?
Приступить в jsfiddle
  • Вопрос задан
  • 286 просмотров
Решения вопроса 1
@h88p
Pre-Junior HTML Developer
const concat = (array, ...args) => {
        args.forEach(elem => {
            Array.isArray(elem) ? (
                elem.forEach(_elem => {
                    array.push(_elem)
                })
            ) : array.push(elem)
        })
        return array;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы