Здравствуйте. Есть задача перебрать массив и в случае, если ничего не находится из того, что искали, запускать функцию.
Как это лучше сделать?
Пример кода:
var a =
[
{i: 1},
{i: 2},
{i: 9}
];
var b = 5;
$.each(a, function(){
/*если в цикле не находится (this.i === b)
то только тогда надо запустить функцию c();
и сработать она должна не более 1го раза*/
});
var c = function(){
alert('ok')
}
Интересует, скорее, как правильнее всего тут организовать такую конструкцию.
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');
}
Можно обойтись без 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+' не найдено');
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости