Я имею дело с массивом json и выполнением поиска на нем. Код выглядит нормально, но не дает выход. Это мой кодjson array поиск в javascript
var restaurants = [
{"restaurant" : { "name" : "McDonald's", "food" : "burger", "drink" : "coke", "content" : "Lorem ipsum dolor sit amet" }},
{"restaurant" : { "name" : "KFC", "food" : "chicken", "drink" : "pepsi", "content" : "Lorem ipsum dolor sit amet" }},
{"restaurant" : { "name" : "Pizza Hut", "food" : "pizza", "drink" : "sprite", "content" : "Lorem ipsum dolor sit amet" }},
{"restaurant" : { "name" : "Dominos", "food" : "pizza", "drink" : "root beer", "content" : "Lorem ipsum dolor sit amet" }},
{"restaurant" : { "name" : "Popeyes", "food" : "chicken", "drink" : "mist", "content" : "Lorem ipsum dolor sit amet" }}
];
И мой метод для поиска
function filter(restaurants, food, drink) {
var result = [];
for(var i= 0, len = restaurants.length; i < len; i++) {
var el = restaurants.restaurant[i];
if(el.food === food && el.drink === drink) {
result.push(el);
}
}
return result;
}
Но в консоли он показывает Uncaught TypeError: Cannot read property 'length' of undefined
. Что не так с функцией? Как я могу выполнить полный поиск? Это о функции длины строки?
Как называется функция 'filter'? Я предполагаю, что параметр 'restaurants' переопределяет глобальные« рестораны », содержащие фактические данные. – haim770
\t –
Вы должны передать переменную 'рестораны' в' filter() 'или она выдает ошибку. –