Как правильнее обработать массив на jQuery

281
22 июля 2017, 08:46

Здравствуйте. Есть задача перебрать массив и в случае, если ничего не находится из того, что искали, запускать функцию.

Как это лучше сделать?

Пример кода:

var a = 
[
  {i: 1},
  {i: 2},
  {i: 9}
];
var b = 5;
$.each(a, function(){
  /*если в цикле не находится (this.i === b) 
    то только тогда надо запустить функцию c(); 
    и сработать она должна не более 1го раза*/
});
var c = function(){
  alert('ok')
}

Интересует, скорее, как правильнее всего тут организовать такую конструкцию.

Answer 1

var a = [{ 
  i: 5 
}, { 
  i: 23 
}, { 
  i: 47 
}]; 
 
var notfound = true, 
  search = 7;; 
a.forEach(function(item) { 
  if (item.i === search) { 
    notfound = false; 
  } 
}); 
if (notfound) { 
  console.log('your code here'); 
}

Answer 2

Можно обойтись без jQuery и сделать на чистом js:

var a = [ 
  {i: 1}, 
  {i: 2}, 
  {i: 9} 
]; 
var b = 5; 
var call = true; // объявляем флаг для обозначения "нахождения" 
var c = function() { 
  alert('ok'); 
} 
for (i = 0; i < a.length; i++) { 
  if (a[i].i === b) { // если значение i равно b 
    call = false; // переключаем флаг на false 
  } 
} 
if (call) { // если флаг равен true 
  c(); // вызываем функция c() 
  console.log('Элементов с i равным '+b+' не найдено'); 
}

READ ALSO
определить первые два слова стоки js

определить первые два слова стоки js

Добрый день, подскажите определить первые два слова в строке, и обернуть их в спанJS или jQuery разницы нет

225
Счетчик исключений из беседы ВК

Счетчик исключений из беседы ВК

Как реализовать счетчик киков из определенной беседы?

179
Частичная выборка и сущности?

Частичная выборка и сущности?

Частичная выборка и сущности? Все примеры, что есть по DDD, конечно классные и все такое, но когда дело доходит до разработки появляются вопросы

147