gpt4 book ai didi

Javascript 引用复制问题

转载 作者:行者123 更新时间:2023-12-03 01:39:40 24 4
gpt4 key购买 nike

我有一个原始数组,我像这样初始化:

$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);
}

});


}

如何修复它才能不丢失原始值?

最佳答案

您可以使用扩展语法,例如

$scope.rawUsers = [...$scope.users];

这将为您提供数组 $scope.users 的新副本,而无需任何引用。

Spread syntax allows an iterable such as an array expression or string to be expanded in places where zero or more arguments (for function calls) or elements (for array literals) are expected, or an object expression to be expanded in places where zero or more key-value pairs (for object literals) are expected

欲了解更多信息,请访问here

如果您想使用 angularjs 函数,那么您可以使用 angular.copy() ,因为它会创建源的深拷贝,该副本应该是一个对象或一个大批。这将是这样的:

$scope.rawUsers = angular.copy($scope.users);

关于Javascript 引用复制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50910124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com