2014-11-11 2 views
-6

У меня есть JSON-файл с пользователями:Как считать людей в файле JSON?

[ 
    { 
     "id": 1, 
     "username": "Michael", 
     "users": [ 
      { 
       "id": 2, 
       "like": 0 
      }, 
      { 
       "id": 3, 
       "like": 1 
      }, 
      { 
       "id": 4, 
       "like": 0 
      }, 
      { 
       "id": 5, 
       "like": 1 
      } 
     ] 

    }, 
    { 
     "id": 2, 
     "username": "Antony", 
     "users": [ 
      { 
       "id": 1, 
       "like": 0 
      }, 
      { 
       "id": 3, 
       "like": 1 
      }, 
      { 
       "id": 4, 
       "like": 0 
      }, 
      { 
       "id": 5, 
       "like": 1 
      } 
     ] 

    }, 
... 

И мне нужно сосчитать всех пользователей с подобными, так что после этого мне нужно иметь массив так:

userWithlikes [0] = 2,

[1] userWithlikes = 2,

userWithlikes [2] = 3, ...

Я могу рассчитать, сколько у меня пользователей: var allUsers = thumbsUp_data.length;

Все данные из файла JSON в «thumbsUp_data».

Помощь, Как подсчитать всех пользователей и отобразить количество понравившихся массива данных?

+10

Вы сделали попытку этого, который у вас есть проблемы с? –

ответ

0

Вы должны сделать это довольно легко, используя Array.map() и Array.filter(). Вот пример

var users = [ 
 
    { 
 
     "id": 1, 
 
     "username": "Michael", 
 
     "users": [ 
 
      { 
 
       "id": 2, 
 
       "like": 1 
 
      }, 
 
      { 
 
       "id": 3, 
 
       "like": 1 
 
      }, 
 
      { 
 
       "id": 4, 
 
       "like": 0 
 
      }, 
 
      { 
 
       "id": 5, 
 
       "like": 1 
 
      } 
 
     ] 
 
    }, 
 
    { 
 
     "id": 2, 
 
     "username": "Antony", 
 
     "users": [ 
 
      { 
 
       "id": 1, 
 
       "like": 0 
 
      }, 
 
      { 
 
       "id": 3, 
 
       "like": 1 
 
      }, 
 
      { 
 
       "id": 4, 
 
       "like": 0 
 
      }, 
 
      { 
 
       "id": 5, 
 
       "like": 1 
 
      } 
 
     ] 
 
    } 
 
]; 
 

 
var usersWithLikes = users.map(function(user) { 
 
    return user.users.filter(function(value) { 
 
     return value.like === 1;  
 
    }).length; 
 
}); 
 

 
console.log(usersWithLikes);

+0

OMG, большое спасибо! –

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