面对非常糟糕的 angular.copy 用于大型数组的性能
Facing very bad performance for angular.copy for large array
[编辑]
我们确定正则表达式不是问题,而是angular.copy.因此我将问题从正则表达式问题更新为Angular.copy问题。
[原文]
例如,我想在所有记录中将名称从格式"BD12"更改为"BD",并且我有一个包含大约 3000 条此对象类型的记录的数组:
{
Name: "BD12",
PostCode: "SE 15477 28954",
State_Id: 2,
State: null,
Country_Id: 2,
Country: "United Kingdom",
GridReference: null,
Region: null,
AreaCode: "01274",
Latitude: 53.75672,
Longitude: -1.7667413,
Easting: 415477,
Northing: 428954,
Id: 2
}
我正在使用 Array.map 函数进行此计算,在我的 60 位戴尔 Latitude E5540 上大约需要 8 秒到 1 分钟,配备 8GB 内存英特尔酷睿 I5 2 和 2.6 GHz。
data.results = [];//contains [2500] records
$scope.outWardCodes = angular.copy(data.results)
.map(wc=> { wc.Name = wc.Name.match("^[a-zA-Z]+"); return wc }));
如何改善这一点?
[编辑]我还需要原始数组。
替换
angular.copy(data.results)
跟
data.results.map(function(value){value = Object.create(value);return value});
或者干脆
$scope.outWardCodes = data.results.map(function(value){value = Object.create(value); value.Name = value.Name.match("^[a-zA-Z]+"); return value});
相关文章:
- 将函数的上下文应用于javascript变量
- keyup事件处理程序更改焦点不适用于快速键入
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在jstree中,如何将指定的节点集中到大型树上
- PHP中的setcookie仅适用于localhost
- 包括用于facebook评论框的JavaScript SDK
- 如何检测用于WebGL的专用或集成显卡
- ng更改事件不适用于Dropdown
- 高效灵活的Javascript库,用于查询允许聚合的大型JSON文件
- 用于组织大型javascript应用程序的工具和最佳实践
- 用于大型静态网站的JavaScript树视图
- 如何将 Backbonejs 用于大型可扩展应用程序
- 面对非常糟糕的 angular.copy 用于大型数组的性能
- 用于大型字符串的 Javascript 语法高亮显示器
- 将 emacs 用于大型多文件 JavaScript 项目
- 将NodeJS用于大型项目
- Python代码,用于在线解析大型JSON数据和主机,但会定期刷新
- 用于大型数据集的javascript/html5图表库
- Redux开发工具不适用于大型操作负载