输出数组重复项
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,则认为有重复项
另外一个办法则需要排序:
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 }, []) }