У вас отличные варианты для реализации функции insertValToArr. От себя могу добавить, что можно подобное сделать и через spread, но данный вариант скорее подойдет для одномерных массивов.
function insertValToArr(arr, val) {
return [...arr, val];
}
Да полностью согласен с вами, нужно учитывать множество факторов при алгоритма клонирования. Хочу отметить, что аргументы в функцию все таки передаются двумя способами, на мой взгляд. Просто по ссылке они передаются не явным образом. Мы не можем явно передать аргумент данным способом как это делается в C# или C++, та и в PHP. Это как преобразование типов в JS — компилятор автоматически это сделает все за нас и преобразует в нужный тип, если это будет возможно
Не думаю, что вы со зла пишете )
Наоборот критика — шикарно, особенно, когда конструктивная. В комментариях мне указали на мои ошибки, где я не прав, даже предложили как улучшить метод для клонирования и это здорово. Во время обсуждения мы учимся и проверяем свои силы. Так что все окей
Я имею ввиду структура массива осталось верной, он не перевел его в объект изменив числовую индексацию на строковую. А так да, ссылается на один и тот же массив.
Отличная идея с map, нужно попробовать ваш вариант на практике и посмотреть на результат, спасибо )
Добавив одно условие, я скопировал массив верно, но при этом он остался зависимым от массива из другого объекта. Хотя подобное следовало ожидать, но все же интересная особенность
Все таки добью эту функцию, чтобы работала корректно не только с объектами, а как минимум еще с массивом. После чего внесу правки в статью. Еще раз, спасибо вам за отзыва )
Да, полностью согласен, есть недоработка работы с массивом. Хоть и писал и писал ее для объекта, но про такое как массив не стоило забывать. Спасибо, за отличный тык носом )
Комментарием выше пользователь Sombressoul сделал фаст-тест функции, которую я предложил и через JSON.parse, огромное спасибо ему за это. Как оказалась JSON.parse уступает в производительности в 10 раз. Ссылка натест
insertValToArr
. От себя могу добавить, что можно подобное сделать и через spread, но данный вариант скорее подойдет для одномерных массивов.Наоборот критика — шикарно, особенно, когда конструктивная. В комментариях мне указали на мои ошибки, где я не прав, даже предложили как улучшить метод для клонирования и это здорово. Во время обсуждения мы учимся и проверяем свои силы. Так что все окей
Отличная идея с map, нужно попробовать ваш вариант на практике и посмотреть на результат, спасибо )
Добавив одно условие, я скопировал массив верно, но при этом он остался зависимым от массива из другого объекта. Хотя подобное следовало ожидать, но все же интересная особенность
Все таки добью эту функцию, чтобы работала корректно не только с объектами, а как минимум еще с массивом. После чего внесу правки в статью. Еще раз, спасибо вам за отзыва )
JSON.parse
, огромное спасибо ему за это. Как оказаласьJSON.parse
уступает в производительности в 10 раз. Ссылка натест