我有一个原始数组,我这样初始化:
$scope.rawUsers = angular.copy($scope.users);
然后我按照这样修改一些数据:
function filterUsers(searchString, onlyMine) {
$scope.users = [];
_.find($scope.rawUsers, function (itm) {
var groups = [];
if (onlyMine) {
if (!itm.IsMine)
return;
var hasGroup = false;
_.find(itm.Groups, function (group) {
if (lowercaseGroups.indexOf(searchString) != -1) {
hasGroup = true;
groups.push(group);
}
});
if (hasGroup) {
itm.Groups = groups;
$scope.users.push(itm);
}
} else {
if (itm.IsMine)
return;
$scope.users.push(itm);
}
});
}
如何修复它以便原始值不会丢失?
答案 0 :(得分:1)
您可以使用传播语法,例如
import { interval } from "rxjs";
const observable = interval(1000);
这将为您提供数组$scope.rawUsers = [...$scope.users];
的新副本,而无需任何参考。
Spread语法允许在可能需要零个或多个参数(用于函数调用)或元素(用于数组文字)的位置扩展数组表达式或字符串等迭代,或者在需要扩展的位置扩展对象表达式预期零个或多个键值对(对象文字)
如需进一步阅读,请访问here
如果你想使用$scope.users
函数,那么你可以使用angularjs
,因为它创建了一个源的深层副本,它应该是一个对象或一个数组。这将是:
angular.copy()