[编辑]
我们发现正则表达式不是问题,而是angular.copy。因此我将问题从RegEx问题更新为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功能进行此计算,在64位戴尔Latitude E5540上使用8GB内存英特尔CoreI5 2和2.6 GHz需要大约30秒到1分钟。
data.results = [];//contains [2500] records
$scope.outWardCodes = angular.copy(data.results)
.map(wc=> { wc.Name = wc.Name.match("^[a-zA-Z]+"); return wc }));
如何改善这个?
[编辑] 我还需要原始阵列。
答案 0 :(得分:1)
替换
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});