Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.07.2011, 21:11
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Kolyaj
Ещё нужна проверка i in this
А зачем? Дурацкий вопрос, наверное... Но всё же?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #12 (permalink)  
Старый 10.07.2011, 21:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Элементы в массиве могут быть пропущены.

var a = [1, 2, , , , 3];
Ответить с цитированием
  #13 (permalink)  
Старый 10.07.2011, 21:38
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Понял)) Спасибо))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #14 (permalink)  
Старый 11.07.2011, 00:46
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

В моздоках фигурирует такая:
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;
  };
}

Мот кто объяснит зачем монипуляции до цикла?
Ответить с цитированием
  #15 (permalink)  
Старый 11.07.2011, 01:10
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Не особо-то она правильная, по-моему... Хотя не мне об этом говорить))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #16 (permalink)  
Старый 11.07.2011, 01:18
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Вроде в доках заявлена, как эквивалент встроенной.
Ответить с цитированием
  #17 (permalink)  
Старый 11.07.2011, 02:43
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от float
эквивалент встроенной
Эквивалент встроенной чего? Ты на название посмотри. Мы тут each, вроде как, обсуждали. А потом плавно перешли на every/some.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #18 (permalink)  
Старый 11.07.2011, 03:01
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Ну я начал копаться в Array.js потом перешёл на доки от мозилы. Там вроде для всех новых методов массива есть эквиваленты. Ну индексоф и попался...
Ответить с цитированием
  #19 (permalink)  
Старый 11.07.2011, 09:59
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от melky Посмотреть сообщение
подскажите, пожалуйста, как лучше всего сделать функцию обхода массива с возможностью прерывания
с прерыванием же

видно, не так это просто сделать


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") );
Ответить с цитированием
  #20 (permalink)  
Старый 11.07.2011, 10:15
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от melky
видно, не так это просто сделать
Использую для этого every, и не заметил никаких сложностей.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$('my').load(); Как сделать, чтобы это заработало mycoding Общие вопросы Javascript 25 02.10.2016 23:43
2 function в 1 LAV45 AJAX и COMET 5 27.07.2011 14:49
Многомерный массив в json Л_Денис Общие вопросы Javascript 1 21.04.2010 21:43
CComponent - кроссбраузерные компоненты tenshi Ваши сайты и скрипты 5 20.04.2010 23:22
Свойства посредством полиморфных функций tenshi Ваши сайты и скрипты 0 18.03.2010 17:12