цикл массива
скрипт должен вывести 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, время: 07:13. |