2015-05-10 2 views
1

У меня возникли проблемы с моей $.getJSON функции, первым я храню все мои друзья в массиве, как это:Если значение в многомерный массив

var friends = []; 
friends.push({ 
    user: { 
     username: value.username, 
     uuid: value.uuid, 
     accepted: value.accepted, 
     sent: value.sent 
    } 
}); 

Это получить это, это данные из $.getJSON функции и работает отлично ,

Тогда у меня есть функция поиска, где искать имя пользователя из моей базы данных, как это:

$(document).on('keyup', '.search', function() { 
     $.getJSON('url?username='+$(this).val(), function(data){ 
      $.each(data, function(index, value){ 
       friends.filter(function (friend) { 
        if(friend.user.username == value.username){ 
         //Append custom 
        } else { 
         //append data from JSON 
        } 
       }); 
      }); 
     }); 
    }); 

Если друзья массив есть объект, это работает отлично. Но если он пуст, ничего не происходит, он ничего не добавляет.

Что здесь не так? Любая помощь с благодарностью

ответ

2

Вы должны использовать filter, чтобы возвращать соответствующие элементы в массиве, оценивая, является ли ваш случай true.

var matches = friends.filter(function (friend) { 
    return friend.user.username == value.username 
}); 
if (matches.length > 0) { 
    //you had a match in the friends array 
    console.log(matches[0]); 
} else { 
    //you didn't have a match in the friends array 
} 

Вот fiddle demonstrating the idea

+0

Спасибо большое, @weeksdev! Не думал об этом – user4671208

Смежные вопросы