angularjs阵列拼接到另一个元素
angularjs array splice to another element
我的目标是创建一个类似旋转木马的函数,该函数将旋转最喜欢的课程列表。在代码中,我将数组分配给另一个作用域,并将其拼接为第一个视图。它运行良好。在拼接新阵列的同时,旧阵列也被拼接。输出与代码一起被提及。为什么原始数组也在更改。
获得以3的倍数显示的循环课程列表的最佳逻辑是什么。
$scope.favouriteCoursesOriginal = [
{title:'courseA', stars:5, image:'image.png'},
{title:'courseB', stars:5, image:'image.png'},
{title:'courseC', stars:5, image:'image.png'},
{title:'courseD', stars:5, image:'image.png'},
{title:'courseE', stars:5, image:'image.png'},
{title:'courseF', stars:5, image:'image.png'},
{title:'courseG', stars:5, image:'image.png'},
{title:'courseH', stars:5, image:'image.png'},
{title:'courseI', stars:5, image:'image.png'}
];
console.log($scope.favouriteCoursesOriginal.length); //Output = 9;
$scope.favouriteCourses = $scope.favouriteCoursesOriginal;
$scope.favouriteCourses.splice(0,3);
console.log($scope.favouriteCoursesOriginal.length); //Output = 6;
下面的代码行不会按原始数组的值进行复制。它只是导致favoriteCourses
变量引用相同的数组。
$scope.favouriteCourses = $scope.favouriteCoursesOriginal;
您应该使用javascipt slice
函数来创建一个副本
$scope.favouriteCourses = $scope.favouriteCoursesOriginal.slice();
请注意,slice
只会进行浅层复制。如果需要阵列中对象的副本,则需要分别复制这些副本。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 按我自己的类克隆另一个元素的内容和顺序
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 使用数据属性将HTML数据复制到另一个元素
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 在类JavaScript选择的另一个元素中选择一个标记元素
- 只要存在,就用另一个元素替换一个元素
- 初学者反应查询(如何删除一个元素并附加另一个元素)
- 将jquery ui窗口的父元素设置为另一个元素
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- Pixijs将元素附加到另一个元素
- JavaScript:将输入范围行为链接到另一个元素
- 如何使用元素's属性值,以针对jQuery中具有相同属性值的另一个元素
- angularjs阵列拼接到另一个元素
- 另一个元素JAVAscript中的元素位置
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 将元素的可见性绑定到另一个元素