freeCodeCamp/curriculum/challenges/japanese/02-javascript-algorithms-an.../basic-data-structures/remove-items-from-an-array-...

2.5 KiB

id title challengeType forumTopicId dashedName
587d78b2367417b2b2512b0f pop() と shift() による配列からのアイテムの削除 1 301165 remove-items-from-an-array-with-pop-and-shift

--description--

push() および unshift() と対で、ほぼ反対の機能を持つメソッドが pop() および shift() です。 ご推察のとおり、pop() は配列の末尾から、shift() は配列の先頭から、要素を追加するのではなく削除します。 pop()shift() は同じような仲間の push()unshift() と違って、どちらのメソッドもパラメーターを受け取らず、一度に 1 つの配列要素しか変更できません。

以下を見てみましょう。

let greetings = ['whats up?', 'hello', 'see ya!'];

greetings.pop();

greetings の値は ['whats up?', 'hello'] になります。

greetings.shift();

greetings の値は ['hello'] になります。

以下のような方法で、削除された要素の値を返すこともできます。

let popped = greetings.pop();

greetings の値は [] に、popped の値は hello になります。

--instructions--

関数 popShift を定義しました。この関数は引数として配列を受け取り、新しい配列を返します。 pop()shift() を使用して関数を変更してください。引数である配列の最初と最後の要素を削除し、削除された要素を対応する変数に割り当てて、それらの値を含む配列を返すようにします。

--hints--

popShift(["challenge", "is", "not", "complete"])["challenge", "complete"] を返す必要があります。

assert.deepEqual(popShift(['challenge', 'is', 'not', 'complete']), [
  'challenge',
  'complete'
]);

popShift 関数で pop() メソッドを使用する必要があります。

assert.notStrictEqual(popShift.toString().search(/\.pop\(/), -1);

popShift 関数で shift() メソッドを使用する必要があります。

assert.notStrictEqual(popShift.toString().search(/\.shift\(/), -1);

--seed--

--seed-contents--

function popShift(arr) {
  let popped; // Change this line
  let shifted; // Change this line
  return [shifted, popped];
}

console.log(popShift(['challenge', 'is', 'not', 'complete']));

--solutions--

function popShift(arr) {
  let popped = arr.pop(); // Change this line
  let shifted = arr.shift(); // Change this line
  return [shifted, popped];
}