2016-11-21 79 views

回答

1

你可以尝试基于该阵列中的特定值出现的次数过滤你的数组:

var arr = [1, 1, 2, 3, 5, 5] 
 

 
var res = arr.filter((el, _, arr) => { 
 
     return arr.filter(el2 => el2 === el).length === 1 
 
}) 
 

 
console.log(res)

+0

哇,这是快!非常感谢哥们,感谢它! – OneLazy

+0

:)你非常欢迎! –

+1

虽然我建议接受@ nina-scholz的解决方案,但它更快,更优雅...... –

0

$(function() { 
 
    var array = [1, 2, 3, 4, 5, 6, 6 ,6 ] 
 
    console.log(removeDuplicate(array, 6)) 
 
}); 
 

 
function removeDuplicate(original, val) { 
 
    if(!val) return original 
 

 
    
 
    var filtered = _.filter(original, function(num){ return num != val; }); 
 
    return filtered 
 
}
<script src="http://underscorejs.org/underscore.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

5

您可以使用检查索引和最后的索引。

var arr = [1, 1, 2, 3, 5, 5], 
 
    res = arr.filter((a, _, aa) => aa.indexOf(a) === aa.lastIndexOf(a)); 
 

 
console.log(res);

0

你也可以做如下;

function removeDuplicates(a){ 
 
    return a.sort((a,b) => a - b) 
 
      .reduce((p,c,i,a) => c === a[i-1] || c === a[i+1] ? p : p.concat(c),[]); 
 
} 
 

 
var arr = [5,3,2,7,6,6,9,2,4,6,0,8,1,3,8,8,3]; 
 
console.log(removeDuplicates(arr))