我設法找到一個解決方案,我認爲覆蓋這個問題,在使用二級結構來記錄每個類別的頻率與所述建議的工作從mainegreen,並且其比較了使用該頻率數組的值自定義排序功能。下面的示例實現;
function getCategories(products) {
var categories = [], frequency = {};
for (var i = 0; i < products.length; i++) {
for (var c in products[i]) {
if (products[i].hasOwnProperty(c)) {
if (frequency.hasOwnProperty(c)) {
frequency[c]++;
} else {
categories.push(c);
frequency[c] = 1;
}
}
}
}
categories.sort(function (a,b) { return frequency[b]-frequency[a]; });
return categories;
}
這將適用於下面的一系列產品;
var products = [
{
cat1: 'val1',
cat2: 'val1',
}, {
cat2: 'val2',
cat3: 'val2',
}, {
cat2: 'val3',
cat3: 'val3',
cat4: 'val3',
}
];
你可以發表你的數組結構,以便我們瞭解你的數組結構。會幫助很多。 – 2012-04-09 11:44:05
你如何獲取數據?數據庫排序可能更合適。 – ajreal 2012-04-09 11:45:58
你是什麼'characteristics'意思??? – Baba 2012-04-09 11:46:12