У меня есть массив javascript продукта, который содержит всю информацию о продуктах. Создал функцию, которая выполняет итерацию по этому массиву и находит продукт по идентификатору.Функция Javascript, возвращающая ложный даже найденный объект
var products = JSON.parse('[{"Product":{"id":"1","name":"My Product","description":"This is my new product","price":"10.00","currency":"$","stock":"0","image":"/image1.png"}},{"Product":{"id":"5","name":"Dummy Product 2","description":"Some dummy text goes here.","price":"10.00","currency":"$","stock":"100","image":"image2.jpg"}}]');
$(document).ready(function(){
console.log(products);
alert(findProduct(5)); //it will returns false everytime, evan it has matching product
});
function findProduct(product_id){
$.each(products, function(k, v){
if(v.Product.id == product_id){
console.log(v);
return products[k]; //or return 'v'
}
});
return false;
}
Проверить это Demo
Функция возвращает ложь каждый раз, даже если он нашел идентификатор продукта соответствия, не знаю, почему? Если я храню соответствующий массив в переменной, и после итерации верните значение этого ключа, он вернет правильный объект. Но это не так, потому что я хочу остановить итерацию и вернуть значение, если объект найден.
'return result;' может быть? – Tony
Да, исправлено. Спасибо за примечание. –