【问题标题】:Trying to remove duplicate elements with the same values that are next to each other in an array (they have to preserve the original order)尝试删除数组中具有相同值且彼此相邻的重复元素(它们必须保留原始顺序)
【发布时间】:2020-11-04 01:32:21
【问题描述】:

所以)。这将删除所有重复项。但我无法弄清楚仅删除彼此相邻的重复项的逻辑。

例如: 输入:('FFNNbbffnnNN'); 输出:[F, N, b, f, n, N];

var uniqueInOrder = function(iterable){
var newArr =[];
var len = iterable.length;
for(var i = 0; i < len ; i ++){
  if( newArr.indexOf(iterable[i]) === -1){
newArr.push(iterable[i])
  } 
 }
    return newArr;
}
uniqueInOrder('ffssSnnsS');

在这里我尝试了一点.. 嗯.. 乞求提示。谢谢!

var uniqueInOrder = function(iterable){
var newArr =[];
var len = iterable.length;
var first = iterable[0];
for(var i = 0; i < len ; i ++){
  if( newArr.indexOf(first) !== newArr.indexOf(first + 1){
newArr.push(iterable[i])
  } 
 }
    return newArr;
}
uniqueInOrder('ffssSnnsS');

【问题讨论】:

    标签: javascript arrays duplicates


    【解决方案1】:

    使用Array.filter()

    var nums = [1,2,3,3,4,5,5,6,7,7,8];
    
    nums.forEach(function(num,index){
      // Is the current index < the amount of itmes in the array
      // and, if so, is the current item equal to the next item?
      if(index < nums.length && num === nums[index + 1]){
        nums.splice(index,1); // Remove the current item
      }
    });
    
    console.log(nums);

    【讨论】:

    • 我唯一遇到的问题是它没有考虑连续超过 2 个。例如,尝试var nums = [1,2,3,3,4,5,5,6,7,7,8,8,8]; 你最后会得到 2 个 8,我不确定这是预期的结果。
    • 他的措辞是`删除彼此相邻的重复。`这告诉我8,8,8,8应该只以一个8结束,而不是2
    【解决方案2】:

    我是这样做的:

    function uniqueInOrder(str) {
      const letters = str.split('');
    
      var lastLetter = null;
      for (let [index,letter] of Object.entries(letters)) {
        if (letter === lastLetter) {
          letters[index] = null;
        } else {
          lastLetter = letter;
        }
      }
    
      console.log(letters);
      return letters.join('');
    }
    
    uniqueInOrder('ffssSnnsS');
    

    我使用split 把它变成一个数组。我跟踪最近的上一封信。如果当前字母匹配,我将null它放在数组中,否则我只更新lastLetter变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      相关资源
      最近更新 更多