オブジェクトを作成してみましたが (いくつかのコメントで示唆されているように)、追加された複雑さがそれだけの価値があるかどうかはわかりませんが、有用な場合に備えてここに投稿します。この特定のケースでは、オブジェクトはほとんど役に立たず、より有用な可能性があるのは、結合データを格納し、並べ替え、各タイプの特性のリストを入力および出力として処理Person
する集約オブジェクト ( ) です。PersonSet
( jsfiddle )
var names = ['John', 'Jim', 'Jack', 'Jill'],
ages = [25, 30, 31, 22],
genders = ['male', 'male', 'male', 'female'];
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
function PersonSet(names, ages, genders) {
this.content = [];
for (var i = 0; i < names.length; i++) {
this.content.push(new Person(names[i], ages[i], genders[i]));
// (alternatively...)
// this.content.push({name: names[i], age: ages[i], gender:
// genders[i]});
}
this.sort = function(aspect) {
this.content.sort(function(a, b) {
return ((a[aspect] < b[aspect]) ? -1 :
((a[aspect] > b[aspect]) ? 1 : 0));
});
};
this.get = function(aspect) {
var r = [];
for (var i = 0; i < this.content.length; i++) {
r.push(this.content[i][aspect]);
}
return r;
}
}
var personSet = new PersonSet(names, ages, genders);
personSet.sort('age');
console.log(personSet.get('name'), personSet.get('age'),
personSet.get('gender'));