JavaScript數組倒序函數reverse()


左邊為原數組,右邊為array.reverse()的結果:

 

函數很簡單,但是

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

 

這段代碼在反復運行時,卻出現了問題,結果如下:

 

 

temp做的倒序運算,卻改變了原數據,可以猜測是引用傳遞而不是值傳遞

再把函數中的原數據打印看看:

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

 

 

兩次運行結果:

 

 

可見,在賦值后,每次調用reverse都會重新復制,而且能改變原數組元素。

要想多次運行得到一樣的排列順序,必須在某一地方打斷引用傳遞,具體怎么做還沒想到


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM