2016-11-25 7 views
1

オブジェクトを大量に宣言し、それぞれの年齢に応じて異なる人物をログに記録します。

var people = [ 
     { firstname: 'Gosho', lastname: 'Petrov', age: 42 }, 
     { firstname: 'Bay', lastname: 'Ivan', age: 81 }, 
     { firstname: 'John', lastname: 'Doe', age: 42 }, 
     { firstname: 'Pesho', lastname: 'Pesho', age: 22 }, 
     { firstname: 'Asdf', lastname: 'Xyz', age: 81 }, 
     { firstname: 'Gosho', lastname: 'Gosho', age: 22 } 
    ]; 


    var counter=0; 
    for(i=0; i<people.lenght; i+=1) { 
     if (people[i].age === people[i+1].age) { 
      counter+=people[i]; 
     } 
    } 

どのように人を年齢によって整理し、コンソールにログを記録できますか?obejcts(配列順)で配列の正しいプロパティを見つける方法?

+0

をソートします誤植があります。長さは長さにする必要があります。 'i ++ = 1'の代わりに' i ++ 'を行うことができます –

+0

私は入力ミスを修正しましたが、まだエラーがあります:ypeError:未定義のプロパティ 'age'を読み込めません – kai0

答えて

2

Array#sortを使用できます。

var people = [{ firstname: 'Gosho', lastname: 'Petrov', age: 42 }, { firstname: 'Bay', lastname: 'Ivan', age: 81 }, { firstname: 'John', lastname: 'Doe', age: 42 }, { firstname: 'Pesho', lastname: 'Pesho', age: 22 }, { firstname: 'Asdf', lastname: 'Xyz', age: 81 }, { firstname: 'Gosho', lastname: 'Gosho', age: 22 }]; 
 

 
people.sort(function (a, b) { 
 
    return a.age - b.age; // ascending 
 
}); 
 

 
console.log(people);
.as-console-wrapper { max-height: 100% !important; top: 0; }

0

あなたはLodashsortBy()メソッドを使用することができます。

https://lodash.com/docs#sortBy

var users = [ 
    { 'user': 'fred', 'age': 48 }, 
    { 'user': 'barney', 'age': 36 }, 
    { 'user': 'fred', 'age': 40 }, 
    { 'user': 'barney', 'age': 34 } 
]; 

_.sortBy(users, [function(o) { return o.age; }]); 

これは戻り、あなたのループのために新しい配列

[['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]] 
関連する問題