no versions found for ApplicationFrameworkReferences / Utility/observablearray_Symboliterator / en

ObservableArray: [Symbol.iterator]()

対象の ObservableArray の配列要素に対して反復処理を行う反復可能オブジェクトを返します。この関数は values() 関数と同じ効果を持ちます。

info
  • [Symbol.iterator]() を実装していることにより、ObservableArray は反復可能オブジェクト(iterable)として扱うことができます。反復可能オブジェクトは for-of 文やスプレッド構文 (...iterable) と組み合わせて使用できます。

構文

observableArray[Symbol.iterator]() => IterableIterator<ObservableObject>

返値: IterableIterator<ObservableObject>

対象の ObservableArray の各要素を反復処理する反復可能オブジェクトです。

const observableArray = new ObservableArray({ x: 42, y: "foo" }, { twoWay: true, initCount: 4 });

//  スプレッド構文を使い、observableArray の要素のコピーを作る
const observableArrayElements = [...observableArray];

//  ObservableObject の配列がコピーされていることを確認する
console.log(observableArrayElements);
//  ==> [ ObservableObject, ObservableObject, ObservableObject, ObservableObject ]

//  コピーされた値を確認する
console.log(observableArrayElements.map(x => x.curateValues()));
//  ==> [ { x: 42, y: "foo" }, { x: 42, y: "foo" }, { x: 42, y: "foo" }, { x: 42, y: "foo" } ]

const metaVariables = [ "foo", "bar", "baz", "qux" ];
//  for-of 文を使い、observableArray の各要素の値を更新する
for (const observableObject of observableArray) {
    //  x として [0, 43) の範囲の整数を作る
    const x = Math.trunc(43 * Math.random());
    const y = metaVariables[x % metaVariables.length];
    //  x, y を observableArray の要素に反映する
    observableObject.reflectValues({ x , y });
}

//  反映された値を確認する
console.log([...observableArray].map(x => x.curateValues()));
//  ==> for-of ループ内で設定された値が表示される

解説

対象の ObservableArray の配列要素に対して反復処理を行います。この関数は values() 関数と同じ効果を持ちます。