2016-04-19 7 views
-2

私はこの問題をコーディングの課題に遭遇しました。オブジェクトを使って同様の問題を解決するには、スタックオーバーフローの質問があります。この質問の歪みは、お互いに隣接するアイテムだけを数えることです。これのための解決策を知ることは素晴らしいことです。javascriptでパック配列関数を解決する方法

pack([5,5,5,7,7,2,4,7]); 

output should be [5:3, 7:2, 2:1, 4:1, 7:1] 



var dupobject = function(arr){ 
    var nodup = []; 
    var store = {}; 
    var prev = []; 

    for(var i = 0; i < arr.length; i++){ 

    if(arr[i] == prev && store[arr[i]]){ 
     store[arr[i]] += 1; 
     console.log(arr[i]); 
    }else{ 
     store[arr[i]] = 1; 
    } 

    prev = arr[i]; 

    } 

    console.log(store); 
} 


dupobject([ 5,5,5,7,7,2,4,7]); 
+0

これは本当に基本的なコーディングの問題です。あなた自身でそれを解決しようとしましたか? –

+0

出力は[5:3,7:1,2:1,4:1]、7:2を上書きしたくない – neelmeg

答えて

0

ここには誰も投稿していないので、ここに行きます!

https://plnkr.co/edit/lxKRODtzIfCIgfcKS11F?p=options

function aggregate(arr){ 
    var aggregatedArray = []; 

    var consecutiveCount = 1; 
    for(var i=0;i<=arr.length;i++){ 
    if(i>0){ 

     if(arr[i-1] === arr[i] && i !== (arr.length)){ 
     consecutiveCount++; 
     }else{ 
     var obj = {}; 
     obj[arr[i-1]] = consecutiveCount; 
     aggregatedArray.push(obj); 
     consecutiveCount = 1; 
     } 
    } 
    } 
    return aggregatedArray; 
} 
関連する問題