2.1 KiB
2.1 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7b7a367417b2b2512b12 | Slice() を使用した配列アイテムのコピー | 1 | 301158 | copy-array-items-using-slice |
--description--
次に取り上げるメソッドは slice()
です。 slice()
は配列を変更するのではなく、指定された数の要素を新しい配列にコピー、または抽出します。呼び出された配列は変更されずに残されます。 slice()
は 2 つのパラメーターしか取りません。最初のパラメーターは抽出を開始するインデックスで、2 つ目のパラメーターは抽出を終了するインデックスです (このインデックスの前の要素までが抽出されます)。 以下の例を考えてみましょう。
let weatherConditions = ['rain', 'snow', 'sleet', 'hail', 'clear'];
let todaysWeather = weatherConditions.slice(1, 3);
todaysWeather
の値は ['snow', 'sleet']
になりますが、weatherConditions
の値は ['rain', 'snow', 'sleet', 'hail', 'clear']
のままです。
結果として、既存の配列から要素を抽出して新しい配列を作成したことになります。
--instructions--
関数 forecast
を定義しました。この関数は配列を引数として取ります。 slice()
を使用して、引数の配列から情報を抽出し、文字列要素 warm
と sunny
を含む新しい配列を返すように、関数を変更してください。
--hints--
forecast
は ["warm", "sunny"]
を返す必要があります。
assert.deepEqual(
forecast(['cold', 'rainy', 'warm', 'sunny', 'cool', 'thunderstorms']),
['warm', 'sunny']
);
forecast
関数で slice()
メソッドを使用する必要があります。
assert(/\.slice\(/.test(code));
--seed--
--seed-contents--
function forecast(arr) {
// Only change code below this line
return arr;
}
// Only change code above this line
console.log(forecast(['cold', 'rainy', 'warm', 'sunny', 'cool', 'thunderstorms']));
--solutions--
function forecast(arr) {
return arr.slice(2,4);
}