Какие веб-браузеры изначально поддерживают Array.forEach ()

Какие браузеры, кроме Firefox, поддерживают Array.forEach ()? Mozilla утверждает, что это расширение стандарта, и я понимаю это тривиально добавить к прототипу массива, мне просто интересно, какие другие браузеры его поддерживают?


person slashnick    schedule 01.10.2008    source источник


Ответы (7)


В статье Википедии JavaScript перечислены версии JS по браузер. forEach - это часть JavaScript 1.6. Так что он действительно поддерживается большинством браузеров, кроме Opera 9.02 (которую я только что тестировал). Opera 9.5 (которую я только что установил!) Поддерживает его вместе с indexOf для Array.

Удивительно, но неофициально. Я не вижу его поддержки на странице Поддержка ECMAScript в Opera 9.5. Возможно, это упущение или, возможно, лишь частичная поддержка, которую они не хотят рекламировать.

person PhiLho    schedule 01.10.2008
comment
Википедия больше не перечисляет версии, и я не могу найти полный список ни в одной из статей. - person phihag; 11.06.2012

Я только что проверил это по другому вопросу: JavaScript для ... in vs for .

В таблице совместимости ECMAScript 5 от kangax, Array.forEach получает ответ «да» для всех браузеры кроме IE8.

По состоянию на сентябрь 2011 года доля браузера IE на настольных устройствах составляет менее 40%, и по крайней мере 8% браузеров используют IE 9.

Другими словами, Array.forEach теперь поддерживается примерно 70% настольных браузеров. Очевидно, что эта цифра значительно варьируется в зависимости от территории и других факторов - например, в некоторых регионах или странах (например, в Бразилии) доля пользователей Chrome выше, а в некоторых (например, в Китае) гораздо больше пользователей IE6 и IE8. .

Я не проверял, но мобильная поддержка (в браузерах WebKit и Opera) может быть даже выше.

person Sam Dutton    schedule 13.09.2011
comment
Этого все еще достаточно, чтобы быть проблемой в наши дни :-( вместо этого используйте jquery each. - person Soeren L. Nielsen; 03.02.2015

Поскольку IE не поддерживает его (даже v8), я использую jQuery.each () - http://docs.jquery.com/Utilities/jQuery.each

person Joubert Nel    schedule 30.11.2009
comment
v8 = версия 8. V8 = Google V8. - person Joubert Nel; 01.06.2012
comment
Для совместимости с IE8 используйте вместо этого: for(var i=0;i<array.length;i++) {} cycle. - person Stano; 05.06.2013
comment
Наилучший вариант - действительно избегать использования Array.forEach, поскольку мы знаем, что не все браузеры его поддерживают. - person GôTô; 13.01.2014
comment
или определите его сами: smthngsmwhr.wordpress.com/2012/10/22/ - person ses; 06.06.2014

Все современные браузеры, кроме IE.

person Sergey Ilinsky    schedule 01.10.2008
comment
Итак, это: все современные браузеры. - person tuomassalo; 14.08.2012

Клиентская библиотека Microsoft AJAX добавляет это в прототип массива, поэтому, если у вас есть эта клиентская библиотека на вашем сайте, то она у вас точно будет.

person Aaron Powell    schedule 01.10.2008
comment
Изменит ли это реализацию массива в IE? В прошлый раз, когда я проверял, расширение объекта Array в IE не удалось. - person scunliffe; 03.10.2008
comment
Я так думаю, вряд ли команда MS AJAX заставит IE сломаться: P - person Aaron Powell; 04.10.2008

Если вам нужно, чтобы все браузеры поддерживали эту и другие функции JavaScript 1.6–1.8, я бы предложил использовать настраиваемый jPaq библиотека. Функции реализованы способом, предложенным Mozilla.

person Clarence Fredericks    schedule 23.03.2011

Я проверил caniuse.com, и похоже, что все браузеры поддерживают foreach, кроме Opera Mini, имеет информацию о поддержке как ?Support unknow. Если вам интересно, вы можете использовать эту ссылку, чтобы проверить поддержку браузером каких-либо функций. https://caniuse.com/?search=foreach

person jac wida    schedule 15.12.2020