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

相關文章
相關標籤/搜索