我有两个不同长度的数组对象,其中SKSClab('proba','vector',6,1)
的长度为955,data.rows
的长度为287.我在循环内运行循环,大约需要3分钟才能运行。有没有简单快捷的方法来运行下面的代码?
place_names
答案 0 :(得分:0)
您有两个列表place_names
和data.rows
。您感兴趣的字段是name
字段。
根据您从何处获取此数据,最好为此使用字典:
var dict = {};
place_names.forEach(
function(place_name) {
dict[place_name.name]=place_name;
}
);
现在,您可以遍历data.rows
:
data.rows.forEach(
function(row) {
if(row.name in dict) {
var place_name = dict[row.name];
// Do what needs to be done with "row" and "place_name"
}
}
);
这应该会将n^2
算法缩减为n log n
甚至n
(根据JavaScript的字典索引复杂性,我不确定)。此解决方案假定所有place_names[i].name
值都唯一。如果他们不是,那么您可能希望在place_names
中存储所有匹配dict
的列表。