JS把數組中相同元素組合成一個新的數組問題


剛才一朋友問了我一個問題:

arr=['1','1','1','2',,'3','4','5','5','6','6','7','8','9','9','10'];現在有一個這樣規律的數組,需求是把里面相同元素組合成一個新的數組,有什么比較簡便的方法不

也就是說,最終要的結果是這樣的:

newArr = [ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] , [ "5" , "5" ] , [ "6" , "6" ] , [ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]

我的方案如下:

var arr=['1','1','1','2',,'3','4','5','5','6','6','7', '8','9','9','10'];
 var newArr = [],
     tempArr = [];
 for(var i=0,j=arr.length;i<j;i++){
    if(arr[i] == arr[i+1]){
        tempArr.push(arr[i]);
    } else {
        tempArr.push(arr[i]);
        newArr.push(tempArr.slice(0));
        tempArr.length = 0;
    }
 }
 console.log(newArr);
 /*[ [ "1" , "1" , "1" ] , [ "2" ] , [] , [ "3" ] , [ "4" ] ,[ "5" , "5" ] , [ "6" , "6" ] ,  [ "7" ] , [ "8" ] , [ "9" , "9" ] , [ "10" ] ]*/

對此問題,大家有無更好算法,歡迎分享。


免責聲明!

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



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