gpt4 book ai didi

javascript - AngularJS 通过 foreach 替换列表中的元素

转载 作者:行者123 更新时间:2023-11-29 20:48:14 25 4
gpt4 key购买 nike

我正在尝试用新元素(数据)替换列表中的元素。该列表作为 $scope.list 在我的范围内。

所以我做了类似的事情:

angular.foreach($scope.list, function(element) {
if(element.id === data.id) {
element = data;
console.log(element);
return false;
});

console.log($scope.list);

控制台中的元素已更新,但 $scope.list 保持不变。

首先我尝试使用 Array.find() 而不是像这样循环列表:

$scope.list.filter(x => x.id === data.id)[0] = data;

但我在控制台中收到一个错误:分配中的左侧无效。

你知道为什么它不改变 $scope.list 吗?我是 AngularJS 和 JavaScript 的新手。

提前致谢

最佳答案

试试这个

$scope.list = $scope.list.map(element => element.id === data.id ? data : element);

map 函数基本上是一个带有返回值的 forEach - map

没有箭头函数和适当的 if

$scope.list = $scope.list.map(function(element){
if (element.id === data.id){
return data;
}

return element;
});

关于javascript - AngularJS 通过 foreach 替换列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355483/

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