輸出數組重複項

function duplicates(arr) {
  return arr.filter(function(item,index,array){
    return array.indexOf(item) !== array.lastIndexOf(item) && array.indexOf(item) === index;
  })
}

上面是不用排序的辦法。數組

array.indexOf(item) 獲取到數組匹配到的第一個item的 index。 第一個 index 不等於從後面查找的index,則認爲有重複項

另一個辦法則須要排序:spa

function duplicates(arr) {
  Array.isArray(arr) && arr.length>0 && arr.sort()

  return arr.reduce(function(c, v, i){
    v===arr[i+1] && v!==c[c.length-1] && c.push(v)
    return c
  }, [])
}
相關文章
相關標籤/搜索