From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/array/values/index.html | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/array/values/index.html (limited to 'files/ja/web/javascript/reference/global_objects/array/values') diff --git a/files/ja/web/javascript/reference/global_objects/array/values/index.html b/files/ja/web/javascript/reference/global_objects/array/values/index.html new file mode 100644 index 0000000000..29b90252b6 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/array/values/index.html @@ -0,0 +1,122 @@ +--- +title: Array.prototype.values() +slug: Web/JavaScript/Reference/Global_Objects/Array/values +tags: + - Array + - ECMAScript2015 + - Iterator + - JavaScript + - Method + - Prototype + - メソッド + - 反復子 +translation_of: Web/JavaScript/Reference/Global_Objects/Array/values +--- +
{{JSRef}}
+ +

values() メソッドは、配列の各インデックスの値を含む新しい Array Iterator オブジェクトを返します。

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

構文

+ +
arr.values()
+ +

返値

+ +

新しい {{jsxref("Array")}} iterator オブジェクトです。

+ +

+ +

for...of ループを用いた反復処理

+ +
var arr = ['a', 'b', 'c', 'd', 'e'];
+var iterator = arr.values();
+
+for (let letter of iterator) {
+  console.log(letter);
+}  //"a" "b" "c" "d" "e"
+
+ +

Array.prototype.valuesArray.prototype[Symbol.iterator] の既定の実装です。

+ +
Array.prototype.values === Array.prototype[Symbol.iterator]      //true
+ +

.next() を使用した反復処理

+ +
var arr = ['a', 'b', 'c', 'd', 'e'];
+var iterator = arr.values();
+iterator.next();               // Object { value: "a", done: false }
+iterator.next().value;         // "b"
+iterator.next()["value"];      // "c"
+iterator.next();               // Object { value: "d", done: false }
+iterator.next();               // Object { value: "e", done: false }
+iterator.next();               // Object { value: undefined, done: true }
+iteraror.next().value;         // undefined 
+ +
+

一度だけの使用: 配列の反復子オブジェクトは一度だけの使用またはテンポラリオブジェクトです

+
+ +

例:

+ +
var arr = ['a', 'b', 'c', 'd', 'e'];
+ var iterator = arr.values();
+ for (let letter of iterator) {
+ console.log(letter);
+} //"a" "b" "c" "d" "e"
+for (let letter of iterator) {
+console.log(letter);
+} // undefined
+
+ +

理由: next().done=true または currentIndex>lengthfor..of の終了条件だからです。反復処理プロトコルを参照して下さい。

+ +

: 配列の反復子オブジェクトには値が格納されません。その代わりに、その作成に使用された配列のアドレスが格納されるので、その配列に格納されている値に依存します。

+ +
var arr = ['a', 'b', 'c', 'd', 'e'];
+var iterator = arr.values();
+console.log(iterator);        // Array Iterator {  }
+iterator.next().value;        // "a"
+arr[1]='n';
+iterator.next().value;        //  "n"
+
+ +
+

配列内の値が変化した場合は、配列の反復子オブジェクトの値も変化します。

+
+ + + +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}
+ +

ブラウザーの互換性

+ +
+ + +

{{Compat("javascript.builtins.Array.values")}}

+
+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf