Suzuki Blog Written by Yuki Suzuki

【JavaScript関数ドリル】初級編のwithout関数の実装のアウトプット

JavaScript

こちらは、JavaScript関数ドリルに取り組んだ際の、アウトプット記事です。

JavaScript関数ドリル

JavaScript初心者の方、関数の作成に苦手意識のある方は参考にして頂けたらと思います。

スポンサードサーチ

without関数の課題内容

Lodashのwithout関数を実装します。

詳しい「課題内容」「解説動画」「解答例」を確認したい場合は、以下リンク先のページを参照。

without関数

without関数に取り組む前の状態

実装アイデアが全く思い浮かばない状態。

スポンサードサーチ

without関数に取り組んだ後の状態

filterとindexOfを用いて、実装できた。

以下を参考にして、復習することができた。

スプレッド構文

filter関数①

filter関数②

indexOf関数

without関数の実装コード(答えを見る前)

// 第2引数以降は任意の数なので、スプレッド構文
function without(array, ...values) {
  // indexOf関数は値が見つからない場合、-1を返す。
  // -1を返したものだけで、配列を作り直す。
  const newArray = array.filter(i => values.indexOf(i) == -1);

  return newArray;
}

console.log(without([2, 1, 2, 3], 1, 2));

スポンサードサーチ

without関数の実装コード(答えを見た後)

解答例

function without(array, ...values) {
  const newArray = [];
  for(let i = 0; i < array.length; i++) {
    const candidateToPush = array[i];
    // values : [1, 2]
    // array: [2, 1, 2, 3]
    // candidateToPush: 2, 1, 2, 3
    if( !values.includes(candidateToPush) ) {
      newArray.push(candidateToPush);
    }
  }

  return newArray;
}

console.log( without([2, 1, 2, 3], 1, 2) );
// => [3]