JavaScript数组倒序函数reverse()

左边为原数组,右边为array.reverse()的结果:javascript

 

函数很简单,可是java

            var temp = ChartConfig.getMonthData();
            $scope.monthList = temp.reverse();
            console.log('ChartConfig.getMonthData()          '+ChartConfig.getMonthData());
            console.log('$scope.monthList                    '+$scope.monthList);

 

这段代码在反复运行时,却出现了问题,结果以下:数组

 

 

temp作的倒序运算,却改变了原数据,能够猜想是引用传递而不是值传递函数

再把函数中的原数据打印看看:spa

            getMonthData: function () {
                console.log("函数中原数据                         "+scope.chartConfig.xAxis.categories);
                return scope.chartConfig.xAxis.categories;
            }

 

 

两次运行结果:blog

 

 

可见,在赋值后,每次调用reverse都会从新复制,并且能改变原数组元素。ip

要想屡次运行获得同样的排列顺序,必须在某一地方打断引用传递,具体怎么作还没想到get

相关文章
相关标签/搜索