Skip to content

Commit

Permalink
Merge branch 'main' into bug-macro
Browse files Browse the repository at this point in the history
  • Loading branch information
queengooborg authored Nov 11, 2023
2 parents ef2d53f + 29c692d commit f1b8a42
Show file tree
Hide file tree
Showing 57 changed files with 2,202 additions and 1,609 deletions.
2 changes: 1 addition & 1 deletion files/fr/web/http/status/418/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ slug: Web/HTTP/Status/418

{{HTTPSidebar}}

Le statut erreur client HTTP **`418 I'm a teapot`** qui signifie «&nbsp;Je suis une théière&nbsp;» informe que le serveur refuse de préparer du café, car il s'agit d'une théière. Cette erreur est une référence au protocole «&nbsp;<i lang="en">Hyper Text Coffee Pot Control Protocol</i>&nbsp;» qui est le poisson d'avril des RFCs en 1998.
Le statut erreur client HTTP **`418 I'm a teapot`** qui signifie «&nbsp;Je suis une théière&nbsp;» informe que le serveur refuse de préparer du café, car il s'agit d'une théière. Une cafetière/théière combinée qui serait temporairement à court de café devrait retourner le code 503. Cette erreur est une référence au protocole «&nbsp;<i lang="en">Hyper Text Coffee Pot Control Protocol</i>&nbsp;» qui est le poisson d'avril des RFCs en 1998.

Certains sites web utilisent ce code de réponse pour les requêtes qu'ils ne souhaitent pas traiter (par exemple des requêtes automatiques).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ slug: Mozilla/Add-ons/WebExtensions/manifest.json/browser_specific_settings
使用可能なキーをすべて使用した例です。たいていの拡張機能では `strict_max_version``update_url` は省略するのに注意してください。

```json
"applications": {
"browser_specific_settings": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
Expand Down
218 changes: 129 additions & 89 deletions files/ja/web/api/fetch_api/using_fetch/index.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion files/ja/web/api/fragmentdirective/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ l10n:

{{SeeCompatTable}}

**`FragmentDirective`** インターフェイスは、現在の文書で強調表示されているテキストフラグメントを表すお武衛j句とです
**`FragmentDirective`** インターフェイスは、現在の文書で強調表示されているテキストフラグメントを表すオブジェクトです

これは {{domxref("Document.fragmentDirective")}} プロパティでアクセスできます。

Expand Down
2 changes: 1 addition & 1 deletion files/ja/web/api/htmlelement/drag_event/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ target.addEventListener("drop", (event) => {

#### 結果

{{EmbedLiveSample('Drag and drop example')}}
{{EmbedLiveSample('ドラッグ&ドロップの例')}}

## 仕様書

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,38 @@
title: Array.prototype.entries()
slug: Web/JavaScript/Reference/Global_Objects/Array/entries
l10n:
sourceCommit: c66bfef4fbe37744579bfed6dcecd7c7b73741c2
sourceCommit: e01fd6206ce2fad2fe09a485bb2d3ceda53a62de
---

{{JSRef}}

**`entries()`** メソッドは、配列内の各要素に対するキー/値のペアを含む新しい **Array イテレーター**オブジェクトを返します。
**`entries()`** は {{jsxref("Array")}} インスタンスのメソッドで、配列内の各要素に対するキー/値のペアを含む新しい[配列イテレーター](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)オブジェクトを返します。

{{EmbedInteractiveExample("pages/js/array-entries.html")}}

## 構文

```js
entries();
```js-nolint
entries()
```

### 引数

なし。

### 返値

新しい {{jsxref("Array")}} イテレーターオブジェクトを返します。
新しい[反復可能イテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)です。

## 解説

[疎配列](/ja/docs/Web/JavaScript/Guide/Indexed_collections#疎配列)で使用された場合、 `entries()` メソッドは空のスロットを `undefined` の値が設定されているかのように反復処理します。

`entries()` メソッドは[汎用的](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#汎用的な配列メソッド)です。このメソッドは `this` の値に `length` プロパティと整数のキーを持ったプロパティがあることだけを求めます。

##

### 添字と要素の反復処理
### インデックスと要素の反復処理

```js
const a = ["a", "b", "c"];
Expand Down Expand Up @@ -52,6 +62,38 @@ for (const element of arrayEntries) {
// [2, 'c']
```

### 疎配列を反復処理

`entries()` は空のスロットを `undefined` であるかのように処理します。

```js
for (const element of [, "a"].entries()) {
console.log(element);
}
// [0, undefined]
// [1, 'a']
```

### 配列でないオブジェクトに対する entries() の呼び出し

`entries()` メソッドは `this``length` プロパティを読み込み、そのキーが `length` よりも小さい非負の整数である各プロパティにアクセスします。

```js
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: "d", // length が 3 なので entries() からは無視される
};
for (const entry of Array.prototype.entries.call(arrayLike)) {
console.log(entry);
}
// [ 0, 'a' ]
// [ 1, 'b' ]
// [ 2, 'c' ]
```

## 仕様書

{{Specifications}}
Expand All @@ -63,11 +105,10 @@ for (const element of arrayEntries) {
## 関連情報

- [`Array.prototype.entries` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#ecmascript-array)
- [インデックス付きコレクション](/ja/docs/Web/JavaScript/Guide/Indexed_collections)ガイド
- {{jsxref("Array")}}
- {{jsxref("Array.prototype.keys()")}}
- {{jsxref("Array.prototype.values()")}}
- {{jsxref("Array.prototype.forEach()")}}
- {{jsxref("Array.prototype.every()")}}
- {{jsxref("Array.prototype.some()")}}
- [for...of](/ja/docs/Web/JavaScript/Reference/Statements/for...of)
- [`Array.prototype[@@iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator)
- {{jsxref("TypedArray.prototype.entries()")}}
- [反復処理プロトコル](/ja/docs/Web/JavaScript/Reference/Iteration_protocols)
- [ポリフィル](https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js)
117 changes: 52 additions & 65 deletions files/ja/web/javascript/reference/global_objects/array/every/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,88 +7,57 @@ l10n:

{{JSRef}}

**`every()`** メソッドは、列内のすべての要素が指定された関数で実装されたテストに合格するかどうかをテストします。これは論理値を返します。
**`every()`** は {{jsxref("Array")}} インスタンスのメソッドは、列内のすべての要素が指定された関数で実装されたテストに合格するかどうかをテストします。これは論理値を返します。

{{EmbedInteractiveExample("pages/js/array-every.html","shorter")}}
{{EmbedInteractiveExample("pages/js/array-every.html", "shorter")}}

## 構文

```js
// アロー関数
every((element) => {
/**/
});
every((element, index) => {
/**/
});
every((element, index, array) => {
/**/
});

// コールバック関数
every(callbackFn);
every(callbackFn, thisArg);

// インラインコールバック関数
every(function (element) {
/**/
});
every(function (element, index) {
/**/
});
every(function (element, index, array) {
/**/
});
every(function (element, index, array) {
/**/
}, thisArg);
```js-nolint
every(callbackFn)
every(callbackFn, thisArg)
```

### 引数

- `callbackFn`

- : 各要素に対してテストを実行する関数です。

この関数は、以下の引数を伴って呼び出されます。

- : 配列のそれぞれの要素に対して実行する関数です。要素がテストに合格した場合は[真値](/ja/docs/Glossary/Truthy)を返し、そうでなければ[偽値](/ja/docs/Glossary/Falsy)を返す必要があります。この関数は以下の引数で呼び出されます。
- `element`
- : 現在処理されている要素です
- : 配列内で現在処理されている要素です
- `index`
- : 現在処理されている要素の添字です
- : 配列内で現在処理されている要素のインデックスです
- `array`
- : `every` が実行されている配列です。

- `thisArg` {{Optional_inline}}
- : `callbackFn` を実行するときに `this` として使用すされる値です。
- : `every()` が実行されている配列です。
- `thisArg` {{optional_inline}}
- : `callbackFn` を実行するときに `this` として使用される値です。[反復処理メソッド](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#反復処理メソッド)を参照してください。

### 返値

`callbackFn` 関数が配列のすべての要素について{{Glossary("truthy", "真値")}}を返した場合は **`true`**。それ以外は **`false`**
`callbackFn` 関数がいずれかの要素で{{Glossary("falsy", "偽値")}}を返した場合は、すぐに `false` を返します。それ以外は `true` です

## 解説

`every` は、与えられた `callbackFn` 関数を、配列に含まれる各要素に対して一度ずつ、`callbackFn` が{{Glossary("falsy", "偽値")}}を返す要素が見つかるまで呼び出します。そのような要素が見つかると、`every` メソッドはただちに `false` を返します。`callbackFn` がすべての要素に対して{{Glossary("truthy", "真値")}}を返した場合、`every``true` を返します。
`every()` メソッドは[反復処理メソッド](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#反復処理メソッド)です。配列のそれぞれの要素に対して、指定された `callbackFn` 関数が[偽値](/ja/docs/Glossary/Falsy)を返すまで一度ずつ呼び出します。 そのような要素が見つかった場合、 `every()` は直ちに `false` を返し、配列の反復処理を中止します。そうでない場合、 `callbackFn` がすべての要素に対して[真値](/ja/docs/Glossary/Truthy)を返すと、 `every()``true` を返します。

> **メモ:** このメソッドを空の配列に対して呼び出すと、無条件に `true` を返します。
`every` は数学における「∀ (すべての / for all)」記号と同様のふるまいをします。特に、空の配列に対しては `true` を返します。[空集合](https://ja.wikipedia.org/wiki/空集合#性質)のすべての要素が与えられた任意の条件を満たすことは[空虚に真](https://en.wikipedia.org/wiki/Vacuous_truth)です。)

`callbackFn` は値が代入されている配列の要素に対してのみ呼び出されます。つまり、すでに削除された要素や、まだ値が代入されていない要素に対しては呼び出されません
`callbackFn` は値が代入されている配列の要素に対してのみ呼び出されます。[疎配列](/ja/docs/Web/JavaScript/Guide/Indexed_collections#疎配列)の空のスロットに対しては呼び出されません

`callbackFn` は、要素の値、要素の添字、走査されている Array オブジェクトという 3 つの引数をともなって呼び出されます。
`every()` は呼び出された配列を変更しませんが、 `callbackFn` として指定された関数は変更することができます。ただし、配列の長さは `callbackFn` を最初に呼び出す前に保存されることに注意してください。したがって、

`thisArg` 引数が `every` に与えられると、それがコールバックの `this` として使用されます。それ以外の場合は `undefined``this` の値として使われます。`callbackFn` が最終的に監視できる `this` の値は、[関数から見た `this` の決定に関する一般的なルール](/ja/docs/Web/JavaScript/Reference/Operators/this)によって決定されます。
- `callbackFn` は、 `every()` の呼び出しを始めたときの配列の長さを超えて追加された要素にはアクセスしません。
- 既に処理したインデックスを変更しても、 `callbackFn` が再度呼び出されることはありません。
- まだ処理していない既存の配列要素が `callbackFn` によって変更された場合、`callbackFn` に渡される値はその要素が取得された時点での値になります。[削除](/ja/docs/Web/JavaScript/Reference/Operators/delete)された要素は処理されません。

`every` は呼び出された配列を変化させません
> **警告:** 上記のように進行中の配列に対して変更を行うと、理解しにくいコードになることが多いので、(特別な場合を除いて)避けるのが一般的です
`every` によって処理される要素の範囲は、`callbackFn` が最初に呼び出される前に設定されます。`callbackFn` は、`every` の呼び出しが開始された後に追加された要素に対しては、実行されません。既存の配列要素が変更されたり、削除された場合、`callbackFn` に渡される値は `every` がそれらを訪れた時点での値になり、`every` が削除された要素を訪問することはありません。

`every` は数学における「∀ (すべての / for all)」記号と同様のふるまいをします。具体的に言うと、空の配列に対しては `true` を返します。([空集合](https://ja.wikipedia.org/wiki/空集合#性質)のすべての要素が与えられた任意の条件を満たすことは[空虚に真](https://en.wikipedia.org/wiki/Vacuous_truth)です。)
`every()` メソッドは[汎用的](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#汎用的な配列メソッド)です。このメソッドは `this` の値に `length` プロパティと整数のキーを持ったプロパティがあることだけを求めます。

##

### すべての配列要素の大きさをテストする

次の例は、配列内のすべての要素が 10 よりも大きいかどうかテストします
次の例は、配列内のすべての要素が 10 以上であるかどうかテストします

```js
function isBigEnough(element, index, array) {
Expand All @@ -110,13 +79,13 @@ console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 7, 6])); // true
console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false
```

### アロー関数の使用
### 疎配列に対する every() の使用

[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)はより短い構文で同じテストを提供します
`every()` は空のスロットに対して関数を実行しません

```js
[12, 5, 8, 130, 44].every((x) => x >= 10); // false
[12, 54, 18, 130, 44].every((x) => x >= 10); // true
console.log([1, , 3].every((x) => x !== undefined)); // true
console.log([2, , 2].every((x) => x === 2)); // true
```

### 初期配列への影響(変更、追加、削除)
Expand All @@ -125,7 +94,7 @@ console.log(isSubset([1, 2, 3, 4, 5, 6, 7], [5, 8, 7])); // false

```js
// ---------------
// Modifying items
// アイテムの変更
// ---------------
let arr = [1, 2, 3, 4];
arr.every((elem, index, arr) => {
Expand All @@ -134,15 +103,15 @@ arr.every((elem, index, arr) => {
return elem < 2;
});

// Loop runs for 3 iterations, but would
// have run 2 iterations without any modification
// ループは 3 回反復処理されるが、
// 何も変更しなければ 2 回実行される
//
// 1st iteration: [1,1,3,4][0] -> 1
// 2nd iteration: [1,1,2,4][1] -> 1
// 3rd iteration: [1,1,2,3][2] -> 2

// ---------------
// Appending items
// アイテムの追加
// ---------------
arr = [1, 2, 3];
arr.every((elem, index, arr) => {
Expand All @@ -151,14 +120,14 @@ arr.every((elem, index, arr) => {
return elem < 4;
});

// Loop runs for 3 iterations, even after appending new items
// 新しい項目を追加しても、ループは 3 回反復処理する
//
// 1st iteration: [1, 2, 3, new][0] -> 1
// 2nd iteration: [1, 2, 3, new, new][1] -> 2
// 3rd iteration: [1, 2, 3, new, new, new][2] -> 3

// ---------------
// Deleting items
// アイテムの削除
// ---------------
arr = [1, 2, 3, 4];
arr.every((elem, index, arr) => {
Expand All @@ -167,13 +136,29 @@ arr.every((elem, index, arr) => {
return elem < 4;
});

// Loop runs for 2 iterations only, as the remaining
// items are `pop()`ed off
// 残りのアイテムは `pop()` して取り除かれるため、ループは 2 回だけ反復処理される
//
// 1st iteration: [1,2,3][0] -> 1
// 2nd iteration: [1,2][1] -> 2
```

### 配列でないオブジェクトに対する every() の呼び出し

`every()` メソッドは `this``length` プロパティを読み込み、すべてアクセスするか `callbackFn``false` を返すまで `length` より小さい非負の整数キーを持つ各プロパティにアクセスします。

```js
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: 345, // length が 3 なので every() からは無視される
};
console.log(
Array.prototype.every.call(arrayLike, (x) => typeof x === "string"),
); // true
```

## 仕様書

{{Specifications}}
Expand All @@ -185,6 +170,8 @@ arr.every((elem, index, arr) => {
## 関連情報

- [`Array.prototype.every` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#ecmascript-array)
- [インデックス付きコレクション](/ja/docs/Web/JavaScript/Guide/Indexed_collections)ガイド
- {{jsxref("Array")}}
- {{jsxref("Array.prototype.forEach()")}}
- {{jsxref("Array.prototype.some()")}}
- {{jsxref("Array.prototype.find()")}}
Expand Down
Loading

0 comments on commit f1b8a42

Please sign in to comment.