Цитата:
|
Элементы в массиве могут быть пропущены.
var a = [1, 2, , , , 3]; |
Понял)) Спасибо))
|
В моздоках фигурирует такая:
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement /*, fromIndex */) { "use strict"; if (this === void 0 || this === null) throw new TypeError(); var t = Object(this); var len = t.length >>> 0; if (len === 0) return -1; var n = 0; if (arguments.length > 0) { n = Number(arguments[1]); if (n !== n) // shortcut for verifying if it's NaN n = 0; else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) n = (n > 0 || -1) * Math.floor(Math.abs(n)); } if (n >= len) return -1; var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); for (; k < len; k++) { if (k in t && t[k] === searchElement) return k; } return -1; }; } Мот кто объяснит зачем монипуляции до цикла? |
Не особо-то она правильная, по-моему... Хотя не мне об этом говорить))
|
Вроде в доках заявлена, как эквивалент встроенной.
|
Цитата:
|
Ну я начал копаться в Array.js потом перешёл на доки от мозилы. Там вроде для всех новых методов массива есть эквиваленты. Ну индексоф и попался...
|
Цитата:
видно, не так это просто сделать :) if( typeof Array.prototype.forEach === 'undefined' ) Array.prototype.forEach = function( func ){ var arrl, arr = this.reverse(); do if (arrl in arr) func( arr[arrl], arrl, arr ); while( arrl -= 1 > 0 ); } // test .. var log=[]; function each( array, func ){ try { array.forEach( func ) } catch(e) {}; } each( [1,2,3,"break it",4,5,6,7], function(a){ log.push(a); if( a==='break it' ) throw ""; } ); alert( "Прошли : \n\n"+ log.join("\n") ); |
Цитата:
|
Часовой пояс GMT +3, время: 09:23. |