arrays - angular.copy() 不复制数组和选择排序不起作用
问题描述
我是 AngularJs 的新手,正在从事一个 AngularJs 项目。我遇到了其中一个代码段的问题,并希望得到您的帮助。
我有一个问题$scope.arrayEvent
没有复制到$scope.arrayReminder
. 在控制台日志中,我看到以下内容。
该任务是关于设置提醒。
$scope.sortedArrayEvent = function(){
$scope.sortedArrayEvent = function(){
// console.log('$scope.arrayEvent: '+$scope.arrayEvent);
// $scope.arrayReminder = angular.copy($scope.arrayEvent);
$scope.arrayReminder =[{reminderName:"green",reminderTime:"06:00:00",reminderDate:"19/04/2020"},
{reminderName:"yellow",reminderTime:"07:00:00",reminderDate:"20/04/2020"},
{reminderName:"blue",reminderTime:"08:00:00",reminderDate:"18/04/2020"}];
let index = $scope.arrayReminder.length;
for(let i =0;i<index-1;i++){
let minIndex =i;
for (let j = i+1; j<index; j++){
if ($scope.arrayReminder[j].reminderDate < $scope.arrayReminder[minIndex].reminderDate){
minIndex = j;
}
}
let temp = $scope.arrayReminder[minIndex];
$scope.arrayReminder[minIndex] = $scope.arrayReminder[i];
$scope.arrayReminder[i] = temp;
$scope.sortedArray = [{sortedEventName:$scope.arrayReminder[2].reminderName,
sortedEventTime:$scope.arrayReminder[2].reminderTime,
sortedEventDate:$scope.arrayReminder[2].reminderDate,
}]
}
}
然后我尝试用 3 个对象对数组进行硬编码。我想拥有最新的reminderDate
( {reminderName:"yellow",reminderTime:"07:00:00",reminderDate:"20/04/2020"}
) 及其reminderName
和reminderTime
。但我得到了别的东西。
有人可以帮我解决这个问题吗?在解决了这个硬编码问题之后,我的最终目标是解决这个angular.copy()
问题。这就是所需要的。请帮忙
解决方案
我不确定你为什么需要深度克隆,但是angular.copy
会创建一个新的对象/列表。
在你的情况下$scope.arrayReminder = angular.copy($scope.arrayEvent);
如果您对 进行任何操作,$scope.arrayEvent
则将 $scope.arrayReminder
保持不变。
推荐阅读
- javascript - 如何将 URL 参数传递给 ReactJS 中的渲染函数
- pyspark - pyspark ImageSchema.toNDArray 引发 AttributeError:“NoneType”对象没有属性“_jvm”
- azure - USQL - SQL.ARRAY 得到长度?
- python - 在 django allauth 的电子邮件确认中更改“activate_url”
- ios - 如何避免A依赖B的两个静态库中的源代码重复?
- c# - WPF,文本框验证和绑定列表中的一项
- jquery - 动态加载许多选项下拉列表后停止工作
- python - Selenium Webdriver 获取元素(Python)
- authentication - CakePHP 3.6 $this->Auth->identify() 在新创建的数据上返回 FALSE
- r - 闪亮的复选框