цикл массива
скрипт должен вывести 1 раз только найденный объект, сейчас выводит не правильно, срабатывает столько раз сколько и обьектов
var mass = [
{ id: 0, name: 'test1'},
{ id: 1, name: 'test2'},
{ id: 2, name: 'test3'} ]
for (var i = 0; i < mass.length; i++) {
if(mass[i].name == 'test1'){
console.log(true);
} else {
console.log(false);
}
};
|
SpaceAlarm,
так поставьте break в строке 9 |
Цитата:
var mass = [
{ id: 0, name: 'test1'},
{ id: 1, name: 'test2'},
{ id: 2, name: 'test3'} ]
for (var i = 0; i < mass.length; i++) {
if(mass[i].name == 'test2'){
console.log(true);
break;
} else {
console.log(false);
break;
}
};
Мне нужно, что бы если находило test1-2-3 то было true, если же нет test4 допустим то false |
SpaceAlarm,
мне сложно понять вас |
Цитата:
var mass = [
{ id: 0, name: 'test1'},
{ id: 1, name: 'test2'},
{ id: 2, name: 'test3'} ]
мне нужно вывести, если находит одно из значений которое я укажу, если test 1 или 2 или 3, true, если я укажу значение test4 но его в массиве нет, то мне false вывести должно |
То есть, типа всплывает prompt, в него надо указать свойство, и если это свойство есть в объекте, то выводится true?
|
Цитата:
|
var array = [
{ id: 0, name: 'test1'},
{ id: 1, name: 'test2'},
{ id: 2, name: 'test3'}
];
function isName(array, value) {
return array.some(function(el){
return el['name'] === value;
});
}
alert(isName(array, 'Ivan')); //false
alert(isName(array, 'test2')); //true
|
Цитата:
|
А почему сейчас false возвращает?
var array = [
{ id: 0, test_name: 14131 },
{ id: 1, test_name: 41131411 }
];
function isName(array, value) {
return array.some(function(el){
return el['test_name'] === value;
});
}
console.log(isName(array, '41131411'));
|
Цитата:
var array = [
{ id: 0, test_name: '14131' },
{ id: 1, test_name: '41131411' }
];
function isName(array, value) {
return array.some(function(el){
return el['test_name'] === value;
});
}
alert(isName(array, '41131411')); //true
|
Смотри: если test_name: 41131411, не срабатывает false всегда если цифры без скобок
|
=== <- оператор строго сравнения сравнивает тип переменных и их значения
console.log(41131411 === '41131411'); //false console.log(41131411 == '41131411'); // true используйте == |
Спасибо огромное, работает !
|
var array = [
{ id: 0, test_name: 14131 },
{ id: 1, test_name: 41131411 }
];
var past = {
'validate' : '14131 '
}
function isName(array, value) {
return array.some(function(el){
return el['test_name'] == value;
});
}
if((isName(array, '14131' == past.validate)) == true) {
console.log('1');
} else {
console.log('0');
}
а если допустим сравнивать два объекта, и вывести, если true? А тут справился)
if((isName(array, past.validate) == false)) {
console.log('1');
} else {
console.log('0');
}
|
var array = [
{ id: 0, test_name: 14131 },
{ id: 1, test_name: 41131411 }
];
var past = {
'validate' : '14131 '
}
function isName(array, value) {
return array.some(function(el){
return el['test_name'] == value;
});
}
if((isName(array, past.validate) == false)) {
console.log('1');
} else {
console.log('0');
}
Если быстро использовать данный код, то скрипт крашится LOG из консоли: TypeError: array.some is not a function Как исправить? ставить ограничение на доступность к использованию по таймеру, не выход |
Цитата:
|
| Часовой пояс GMT +3, время: 19:33. |