院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

javascriptのpushの戻り値に注意

javascriptでuniqメソッドを実装してみようしたら動かなかった

let uniq = arr => {
  return arr.reduce((acc, cur) => {
     return acc.includes(cur) ? acc : acc.push()
  }, [])
}

理由:pushの戻り値は新しい配列ではなく、その配列の長さだから

let arr = ['a', 'b', 'c', 'd']
console.log(arr.push('e')); // 5

ということで動くようにするにはpushするかどうかをifにして、accをreturnすればいいんだけど
concat使うと期待通りになるからそうした

let uniq = arr => {
  return arr.reduce((acc, cur) => {
    return acc.includes(cur) ? acc : acc.concat(cur)
  }, [])
}