配列から重複を削除

重複を削除した配列を返す. 渡された配列は変えない.

var removeDuplicate = function(a) {
  var b = a, i = 1, j, k
  while (i < b.length) {
    k = b.length
    for (j = 0; j < i; j++) {
      if (b[i] === b[j]) {
        b.splice(i,1)
        break
      }
    }
    if (k == b.length) i++
  }
  return b
}

渡された配列から重複を削除する. 削除された要素の入った配列を返す.

var removeDuplicate2 = function(a) {
  var b = [], i = 1, j, k
  while (i < a.length) {
    k = a.length
    for (j = 0; j < i; j++) {
      if (a[i] === a[j]) {
        b.push(a[j])
        a.splice(i,1)
        break
      }
    }
    if (k == a.length) i++
  }
  return b
}