Используя последние версии JavaScript, доступные для большинства современных браузеров, вы можете сделать это:
array.forEach(function(x){
document.write(x);
});
Подробности на https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach. Если вы беспокоитесь, что браузер может не поддерживатьдля этого вы можете добавить его самостоятельно, используя (мы надеемся, минимизированную) версию реализации, которую они перечислили в разделе «Совместимость».
Это немного устарело, но это версия минимизированной совместимости forEach
что я получил от страницы Mozilla несколько лет назад:
if(!Array.prototype.forEach){Array.prototype.forEach=function(b){if(typeof b!="function"){throw new TypeError()}var a=this.length,d=arguments[1],c;for(c=0;c<a;c++){if(c in this){b.call(d,this[c],c,this)}}}};
У меня никогда не возникало никаких проблем с этим, но реализация на странице Mozilla была расширена с некоторыми дополнительными проверками и кодом, чтобы сделатьон совместим с ECMA-262, издание 5, 15.4.4.18.
У меня есть файл с именем common.js
, который я использую и включаю на всех своих страницах, чтобы включить это, а также все остальные "Массив дополнений ", которые были представлены в JavaScript 1.6, как указано в https://developer.mozilla.org/en/JavaScript/New_in_JavaScript/1.6#Array_extras. (я хотел получить это обновление и опубликовать для публичного использования.)
Этоможет быть не самый быстрый подход (см. http://jsperf.com/for-vs-foreach/15 для некоторых особенностей - спасибо за ссылку, Amadan) - но есть что-то, чтобы сказать для краткости и удобства обслуживания и т. д. Кроме того, будет очень интересно посмотретьсколько из этого несоответствия оптимизировано дальнейшими улучшениями движка JavaScript в течение следующих нескольких месяцев и лет.: -)