Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2015, 19:02
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

Как проверить наличие элемента массива?
Всем доброго дня!

Помогите пожалуйста разобраться как проверять наличие элемента в массиве? Пол дня уже мучаюсь, кучу способов перепробовал - ничего не помогает =(

Написал небольшую функцию, и все классно работало (как задумывалось), пока не попробовал проверить работу с отсутствующими элементами в массиве - на этом и встрял. Each как только не находит элемент в массиве "стопорится", а хром выдает такую ошибку "Uncaught TypeError: Cannot read property '0' of undefined".


var allVal={t1960:[7500,0,2],t412:[100,0,0],t2537:[11,333,1]};

i=0;

var newVal = [];
var newVals = [];

$('[row="view"],[row="comm"],[row="rating"]').each(function(){   
    var id=$(this).parents().attr('id');
    var val=$(this).text();

    if(val>allVal[id][i]){
        $(this).css('fontWeight','bold');                
        $(this).attr('title','+'+(val-allVal[id][i]));
    }
    
    if(i<2){
      newVal.push(val);                
      i++;
    } else {
      newVal.push(val);
      newVals.push(id+':['+newVal+']');
      newVal=[];
      i=0;
    };     

})

Последний раз редактировалось Alex1233, 12.05.2015 в 19:18.
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2015, 19:11
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

Вот в этой строке проблемы:

if(val>allVal[id][i]){


Точнее на ней все стопорится где-то на 4 цикле (когда идет работа с отсутсвующим элементом в массиве val). Здесь как то нужно сделать проверку на наличие элемента и если что просто не делать эти действия, а пропускать и переходить сразу к следующему циклу.

Последний раз редактировалось Alex1233, 12.05.2015 в 19:20.
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2015, 20:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Alex1233,
if(allVal[id] && val>allVal[id][i]){
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2015, 20:10
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

Сообщение от рони Посмотреть сообщение
Alex1233,
if(allVal[id] && val>allVal[id][i]){
Спасибо большое, работает!!!

Блин, самое главное, что вроде как пробовал этот вариант.. Возможно отдельно от "&& val>allVal[id][i]" (отдельным условиям) - не работало... Странно..
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проверить object на "пустоту" Cache Общие вопросы Javascript 7 06.02.2015 20:27
Как улучшить сортировку массива? Armen Общие вопросы Javascript 3 12.10.2014 20:17
Как менять позицию элемента? Заданую через position:absolute; left:100px; top:200px; aRpi Общие вопросы Javascript 3 24.04.2011 08:42
Как проверить название массива? Andrej_2 Общие вопросы Javascript 2 30.06.2010 21:07
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09