pull関数の課題内容
_.pull関数を自分で実装する課題。
https://lodash.com/docs/4.17.15#pull
「課題内容」/「解説動画」/「解答例」を確認したい場合は、以下リンク先のページを参照。
https://js-drills.com/blog/pull/
課題に取り組む前の状態
- 解答を見ずにできそうだと思った。
課題に取り組んだ後の状態
- 実行結果は同じになったものの、解答例を見ると、自分のコードには余計な記述が多いと分かった。
pull関数の実装コード(答えを見る前)
function pull(array, ...values) {
const valueArray = [...values];
if (arguments.length < 2) {
return array;
}
for (let i = 0; i< valueArray.length; i++) {
if (array.includes(valueArray[i])) {
for (let j = array.length - 1; 0 <= j; j--) {
if (array[j] === valueArray[i]) {
array.splice(j, 1);
}
}
}
}
return array;
}
var array = ['a', 'b', 'c', 'a', 'b', 'c'];
let result = pull(array, 'a', 'c');
console.log(result);
// => ['b', 'b']
## pull関数の実装コード(答えを見た後)
function pull(array, ...values) {
if (arguments.length < 2) {
return array;
}
for (let i = array.length - 1; 0 <= i; i--) {
if (values.includes(array[i])) {
array.splice(i, 1);
}
}
return array;
}