Как проверить наличие элемента массива?
Всем доброго дня!
Помогите пожалуйста разобраться как проверять наличие элемента в массиве? Пол дня уже мучаюсь, кучу способов перепробовал - ничего не помогает =( Написал небольшую функцию, и все классно работало (как задумывалось), пока не попробовал проверить работу с отсутствующими элементами в массиве - на этом и встрял. 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; }; }) |
Вот в этой строке проблемы:
if(val>allVal[id][i]){ Точнее на ней все стопорится где-то на 4 цикле (когда идет работа с отсутсвующим элементом в массиве val). Здесь как то нужно сделать проверку на наличие элемента и если что просто не делать эти действия, а пропускать и переходить сразу к следующему циклу. |
Alex1233,
if(allVal[id] && val>allVal[id][i]){ |
Цитата:
Блин, самое главное, что вроде как пробовал этот вариант.. Возможно отдельно от "&& val>allVal[id][i]" (отдельным условиям) - не работало... Странно.. |
Часовой пояс GMT +3, время: 09:21. |