【发布时间】:2015-03-05 21:08:44
【问题描述】:
我计算出生地的“Top-5-List”,以这种形式组织在一个对象数组中
var myObjArr =[
{
"birth":
{
"year": 2012,
"name": "Manchester, Vermont, USA",
}
} , (and so on)
];
然而,我的方法似乎不太高效:
for (var i = 0; i < myObjArr.length; i++) {
var alreadyListed = -1;
for (var j = 0; j < resultData.length; j++) {
if(resultData[j].key == myObjArr[i]['birth']['name']) { // birthname already in resultData
alreadyListed = j;
break;
}
}
if(alreadyListed != -1 ) { // birthname already in resultData -> raise count
resultData[alreadyListed].count += 1;
}else { // birthname not yet in resultData -> add to resultData
resultData.push({key: myObjArr[i]['birth']['name'], count: 1 });
}
}
}
Neiter javascript 的 forEach 和 angulars angular.forEach 似乎提高了性能。有什么建议吗?
【问题讨论】:
-
这个网站不是要求改进工作代码的地方。你应该试试codereview.stackexchange.com
-
您遇到的问题是算法问题。切换到另一种迭代机制不会有任何帮助。
标签: javascript arrays performance loops