我正在尝试执行以下操作,其中foo是一个填充' out'阵列。 但对于数据中心对象中的每个数据中心,推出的数组都会被新值覆盖。
我想阻止这种覆盖。 如何在循环中创建新的数组引用/实例?
_.map(datacenters, function(datacenter){
var out = []
foo(datacenter, out);
$scope.dcSelected.push(out);
});
答案 0 :(得分:1)
将您的out
声明放在外面:
var out = [];
_.map(datacenters, function(datacenter){
foo(datacenter, out);
$scope.dcSelected.push(out);
});
答案 1 :(得分:0)
您可以尝试angularJs的angular.copy(out)。希望它能为你效劳
_.map(datacenters, function(datacenter){
var out = []
foo(datacenter, out);
$scope.dcSelected.push(angular.copy(out));
});
答案 2 :(得分:0)
我不完全明白你想做什么,所以我会做一个一般的例子:
var datacenters = [1,2,3,4]
var out = []
datacenters.map(function(datacenter){
datacenter2 = datacenter + 1;
out.push(datacenter2);
});
console.log(out);
[2,3,4,5]
(我使用地图,因为我没有为js导入下划线)
答案 3 :(得分:-1)
您有两个选择:
1)创建一个闭包
2)创建另一个数组作为控制器的一部分,它将存储数据中心和数组的链接,将其想象为键,值,但是在同一个控制器的全局变量中。