Как вывести содержимое массива без использования циклов в JavaScript?
Рубрика: Программирование -> JavaScript
Метки: JavaScript | программирование | советы
Просмотров: 23829
Один из читателей блога обратился ко мне по почте с вопросом: «Как вести содержимое массива в JavaScript без использования циклов?». Не знаю, зачем ему это понадобилось, но смею предположить, что речь идет о тестовом задании для собеседования. Я никогда не работал JavaScript-разработчиком. Изучал этот язык сугубо для личных целей, поэтому возможно чего-то не знаю, но если бы я столкнулся с этой задачей, то применил бы один из следующих способов.
Метод join()
У массивов в JavaScript есть метод join(). Он возвращает содержимое массива в виде строки (по умолчанию через запятую). В качестве единственного параметра методу можно передать строку-разделитель. Таким образом, элементы массива реально выводить не только через запятую, но и любой другой символ (символы). Рассмотрим несколько примеров:
var myArray = [1111, 5, 3, 4, 5];
myArray.join(); //Результатом будет строка 1111,5,3,4,5
myArray.join("/"); //Результатом будет строка 1111/5/3/4/5
myArray.joun("-#-"); //Результатом будет строка 1111-#-5-#-3-#-4-#-5
Если автор не утаил дополнительных условий, то задача легко решается применением метода join().
Методы toString(), valueOf()
Практически аналогичного результата можно добиться с помощью унаследованных от Object методов toString() и valueOf(). Отличие от join() – отсутствует возможность изменить разделитель. Точней говоря, разделить изменить можно, но для этого придется перекрывать метод собственной реализацией. Смотрим примеры:
myArray.toString(); // 1111,5,3,4,5
myArray.valueOf(); //[ 1111, 5, 3, 4, 5 ]
Возможно, есть еще какие-нибудь способы вывести содержимое массива без применения циклов, но я их не знаю. Если среди посетителей блога есть профи в JavaScript, то буду рад услышать ваши комментарии.