From 4a65312bc880b19f5d5ae9bb33d9a3ec19a992ce Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Tue, 1 Oct 2024 23:53:32 +0900 Subject: [PATCH] =?UTF-8?q?2024/07/15=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=9F=BA=E3=81=A5=E3=81=8D?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global_objects/array/entries/index.md | 4 +-- .../global_objects/array/keys/index.md | 4 +-- .../global_objects/array/splice/index.md | 34 ++++++++++++++++--- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/array/entries/index.md b/files/ja/web/javascript/reference/global_objects/array/entries/index.md index 91f9fb2c07387e..20a7050b3ced78 100644 --- a/files/ja/web/javascript/reference/global_objects/array/entries/index.md +++ b/files/ja/web/javascript/reference/global_objects/array/entries/index.md @@ -2,7 +2,7 @@ title: Array.prototype.entries() slug: Web/JavaScript/Reference/Global_Objects/Array/entries l10n: - sourceCommit: e01fd6206ce2fad2fe09a485bb2d3ceda53a62de + sourceCommit: 6fbdb78c1362fae31fbd545f4b2d9c51987a6bca --- {{JSRef}} @@ -109,6 +109,6 @@ for (const entry of Array.prototype.entries.call(arrayLike)) { - {{jsxref("Array")}} - {{jsxref("Array.prototype.keys()")}} - {{jsxref("Array.prototype.values()")}} -- [`Array.prototype[@@iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator) +- [`Array.prototype[Symbol.iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.iterator) - {{jsxref("TypedArray.prototype.entries()")}} - [反復処理プロトコル](/ja/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/ja/web/javascript/reference/global_objects/array/keys/index.md b/files/ja/web/javascript/reference/global_objects/array/keys/index.md index 240bc760bee8ec..77f274cf9c6c6e 100644 --- a/files/ja/web/javascript/reference/global_objects/array/keys/index.md +++ b/files/ja/web/javascript/reference/global_objects/array/keys/index.md @@ -2,7 +2,7 @@ title: Array.prototype.keys() slug: Web/JavaScript/Reference/Global_Objects/Array/keys l10n: - sourceCommit: e01fd6206ce2fad2fe09a485bb2d3ceda53a62de + sourceCommit: 6fbdb78c1362fae31fbd545f4b2d9c51987a6bca --- {{JSRef}} @@ -76,6 +76,6 @@ for (const entry of Array.prototype.keys.call(arrayLike)) { - {{jsxref("Array")}} - {{jsxref("Array.prototype.entries()")}} - {{jsxref("Array.prototype.values()")}} -- [`Array.prototype[@@iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator) +- [`Array.prototype[Symbol.iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.iterator) - {{jsxref("TypedArray.prototype.keys()")}} - [Iteration protocols](/ja/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/ja/web/javascript/reference/global_objects/array/splice/index.md b/files/ja/web/javascript/reference/global_objects/array/splice/index.md index 3f06118401d6a4..5199ad7243451f 100644 --- a/files/ja/web/javascript/reference/global_objects/array/splice/index.md +++ b/files/ja/web/javascript/reference/global_objects/array/splice/index.md @@ -2,12 +2,12 @@ title: Array.prototype.splice() slug: Web/JavaScript/Reference/Global_Objects/Array/splice l10n: - sourceCommit: fb85334ffa4a2c88d209b1074909bee0e0abd57a + sourceCommit: 6fbdb78c1362fae31fbd545f4b2d9c51987a6bca --- {{JSRef}} -**`splice()`** は {{jsxref("Array")}} インスタンスのメソッドは、[その場 (in-place)](https://ja.wikipedia.org/wiki/In-place%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0) で既存の要素を取り除いたり、置き換えたり、新しい要素を追加したりすることで、配列の内容を変更します。 +**`splice()`** は {{jsxref("Array")}} インスタンスのメソッドで、[その場 (in-place)](https://ja.wikipedia.org/wiki/In-place%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0) で既存の要素を取り除いたり、置き換えたり、新しい要素を追加したりすることで、配列の内容を変更します。 元の配列を変更せずに、ある部分を除去したり置き換えたりした新しい配列を作成するには {{jsxref("Array/toSpliced", "toSpliced()")}} を使用してください。配列を変更せずに配列の一部にアクセスするには {{jsxref("Array/slice", "slice()")}} を参照してください。 @@ -37,7 +37,7 @@ splice(start, deleteCount, item1, item2, /* …, */ itemN) - : 配列の `start` の位置から取り除く古い要素の個数を示す整数です。 - `deleteCount` が省略された場合、または `deleteCount` の値が `start` で指定した位置より後の要素数以上の場合、 `start` から配列の末尾までのすべての要素が削除されます。ただし、任意の `itemN` 引数を渡したい場合は、 `start` より後の要素をすべて削除するために `deleteCount` として `Infinity` を渡す必要があります。明示的に `undefined` を渡すと、[変換](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number#integer_conversion)されて `0` になるからです。 + `deleteCount` が省略された場合、または `deleteCount` の値が `start` で指定した位置より後の要素数以上の場合、 `start` から配列の末尾までのすべての要素が削除されます。ただし、任意の `itemN` 引数を渡したい場合は、 `start` より後の要素をすべて削除するために `deleteCount` として `Infinity` を渡す必要があります。明示的に `undefined` を渡すと、[変換](/ja/docs/Web/JavaScript/Reference/Global_Objects/Number#整数への変換)されて `0` になるからです。 `deleteCount` が `0` または負の数の場合、どの要素も取り除かれません。この場合、少なくとも 1 つの新しい要素を指定する必要があります(以下参照)。 @@ -57,9 +57,9 @@ splice(start, deleteCount, item1, item2, /* …, */ itemN) ## 解説 -`splice()` メソッドは[変更メソッド](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#コピーメソッドと変更メソッド)です。 `this` の内容を変更します。指定した挿入する要素数と除去される要素数が異なる場合、配列の `length` も変更されます。同時に、 [`@@species`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/@@species) を使用して、返す新しい配列インスタンスを作成します。 +`splice()` メソッドは[変更メソッド](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#コピーメソッドと変更メソッド)です。 `this` の内容を変更します。指定した挿入する要素数と除去される要素数が異なる場合、配列の `length` も変更されます。同時に、 [`[Symbol.species]`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/Symbol.species) を使用して、返す新しい配列インスタンスを作成します。 -削除された部分が[疎配列](/ja/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays)の場合、 `splice()` が返す配列も疎配列になり、対応するインデックスは空のスロットになります。 +削除された部分が[疎配列](/ja/docs/Web/JavaScript/Guide/Indexed_collections#疎配列)の場合、 `splice()` が返す配列も疎配列になり、対応するインデックスは空のスロットになります。 `splice()` メソッドは[汎用的](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#汎用的な配列メソッド)です。このメソッドは `this` 値に `length` プロパティと整数キーのプロパティがあることだけを期待します。文字列も配列風ですが、文字列は不変なので、このメソッドを適用するのには適していません。 @@ -85,6 +85,30 @@ const removed = myFish.splice(2, 0, "drum", "guitar"); // removed は [] であり、どの要素も取り除かれていない ``` +### 0(ゼロ)個の要素を 0 の位置から削除して、"angel" を挿入 + +`splice(0, 0, ...elements)` は、{{jsxref("Array/unshift", "unshift()")}} のように配列の先頭に要素を挿入します。 + +```js +const myFish = ["clown", "mandarin", "sturgeon"]; +const removed = myFish.splice(0, 0, "angel"); + +// myFish は ["angel", "clown", "mandarin", "sturgeon"] +// アイテムは削除されない +``` + +### 0(ゼロ)個の要素を末尾の位置から削除っして、"sturgeon" を挿入 + +`splice(array.length, 0, ...elements)` は、{{jsxref("Array/push", "push()")}} のように配列の末尾に要素を挿入します。 + +```js +const myFish = ["angel", "clown", "mandarin"]; +const removed = myFish.splice(myFish.length, 0, "sturgeon"); + +// myFish は ["angel", "clown", "mandarin", "sturgeon"] +// アイテムは削除されない +``` + ### 3 の位置から 1 つ取り除く ```js