我在JS中的對象中很新,所以我需要一些幫助。我有以下數組:如何將項目放入按特定鍵分組的分組數組中
var persons = [
{ fname : 'Steven', lname : 'Jameson', age : 20 },
{ fname : 'George', lname : 'Thrump', age : 40 },
{ fname : 'Peter', lname : 'Jacobs', age : 60 },
{ fname : 'Peter', lname : 'Thrump', age : 20 },
{ fname : 'Steven', lname : 'Henderson', age : 40 },
{ fname : 'John', lname : 'Jacobs', age : 30 },
{ fname : 'Steven', lname : 'Thrump', age : 50 },
{ fname : 'George', lname : 'Peterson', age : 40 },
{ fname : 'Peter', lname : 'Jameson', age : 60 }
];
我需要按給定屬性對信息進行排序。我已經嘗試過function(array, 'property')
。在我的情況下,它將是function(persons, 'fname')
。我必須使用不同的名稱以及用於存儲關於具有該名稱的每個人的信息的關鍵字來實現對象。例如:
Object {
Steven : everyone with first name Steven,
George : everyone with first name George,
Peter : everyone with first name Peter,
John : everyone with first name John
}
我做到這一點:
function group(array, property) {
var object = {};
for (var i = 0; i < persons.length; i++) {
object[persons[i][property]] = [];
object[persons[i][property]].push(persons[i])
};
};
創建具有不同的名稱作爲關鍵字對象,並給他們數組作爲值。然後我卡住了,不知道下一步該怎麼辦?有人可以幫忙,如果他有幾分鐘的時間來解釋一下。
在此先感謝。
所以現在你要排序的對象的鑰匙?這是不可能的,你只能對數組進行排序。 – Bergi 2013-03-20 20:33:00
你提到需要排序,但後來真的談論這些對象的分組。你是否需要做某種形式的分類以及分組,或者簡單地分組?我不完全明白你所困擾的是什麼。 – 2013-03-20 20:33:48
您只需要爲每個密鑰初始化陣列一次,目前您正在覆蓋它。更改爲'if(!(persons [i] [property] in object))object [persons [i] [property]] = [];' – Bergi 2013-03-20 20:34:23