【问题标题】:how to solve pack array function in javascript如何在javascript中解决pack数组函数
【发布时间】:2016-04-19 01:19:11
【问题描述】:

我在编码挑战中遇到了这个问题。有关于使用对象解决类似问题的堆栈溢出问题。这个问题的转折是只计算彼此相邻的项目。很高兴知道这个问题的解决方案。

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]);

【问题讨论】:

  • 这是一个非常基本的编码问题。你试过自己解决吗?
  • 我得到的输出是 [5:3, 7:1, 2:1, 4:1],不希望 7:2 被覆盖

标签: javascript arrays loops object


【解决方案1】:

由于没有人发布答案,我们开始吧!

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多