Как проверить наличие элемента массива?
Всем доброго дня!
Помогите пожалуйста разобраться как проверять наличие элемента в массиве? Пол дня уже мучаюсь, кучу способов перепробовал - ничего не помогает =( Написал небольшую функцию, и все классно работало (как задумывалось), пока не попробовал проверить работу с отсутствующими элементами в массиве - на этом и встрял. 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, время: 04:21. |