какая разница между forEach и every, например, в моей задаче (прерывание) ?
даже передают обе одинаковые аргументы - член массива, ключ, весь массив |
melky,
ещё один неправильно реализующий стандартные функции. |
if( typeof Array.prototype.forEach === 'undefined' ) Array.prototype.forEach = function (iterator, context) { for (var i = 0, length = this.length >>> 0; i < length; i++) { if (i in this) iterator.call(context, this[i], i, this); } } Prototype.js я просто с ума от изящества но зачем делать так ? this.length >>> 0 Пример: это же Math.floor
alert ( [ "_______","|examples :","_______", "|9 >>> 0", "=> "+ (9 >>> 0), "| 9.8 >>> 0", "=> "+ (9.8 >>> 0), "_______"].join("\n") ); можно было и так, Kolyaj :) if( typeof Array.prototype.forEach === 'undefined' ) Array.prototype.forEach = function(fn, ctx) { for (var i = 0, l = this.length; i < l; i++) if (i in this) fn.call(ctx, this[i], i, this); }; ну а прерывать как? через метание ? |
|
melky,
а зачем ты мой ник приписал к функции, к которой я не имею никакого отношения? |
да ладно. какая разница?
|
Непонятен смысл твоего сравнения. Ты сравниваешь плохую реализацию (throw) с неправильной (i--).
|
это не реализация функции по-умолчанию, а написание своей, с возможностью прервать её, Kolyaj
сколько способов реализации знаю, так и написал :) |
использовать исключения плохо
к тому же, они прерывают только 1 цикл, а сразу два вложенных не умеют. и вообще, использовать исключения в штатной ситуации - надо быть совсем упоротым. чтобы прерывать нужно передавать функцию прерывания в колбэк. но лучше не использовать для этого замыкания, а сделать итератор |
Цитата:
alert([typeof '10', typeof ('10' >>> 0)]) во-вторых, для того чтобы предотвратить выход за пределы максимально допустимого диапазона чисел. |
Часовой пояс GMT +3, время: 09:23. |