Ну, в некоторых современных браузерах есть метод ".map ()" для массивов:
var encoded = dynamicArray.map(function(str) {
return encodeURIComponent(str);
});
или без вашей собственной функции-оболочки, которая в данном случае на самом деле не нужна:
var encoded = dynamicArray.map(encodeURIComponent);
Идея состоит в том, что .map () вызывается для каждого элемента массива. Переданная функция должна возвращать некоторый результат, и эти результаты собираются в массив new , который в конечном итоге является возвращаемым значением. Затем вы можете сделать это ".join ()" или сделать все, что вам нужно.
Документация Mozilla для ".map ()" содержит блок кода "polyfill", который можно использовать для предоставления ".map ()" в браузерах, которые его не поддерживают. Также обратите внимание, что многие служебные библиотеки имеют свои собственные .map (), а некоторые из них имеют немного другую семантику. Например, jQuery ".map ()" имеет (мне неприятно) семантику для возвращаемых значений из функции обратного вызова.