🦎[深潜学習]34枚こわれやすい
13070 ワード
水煙
->es 6以前の循環可能なデータセット(配列、文字列、類似配列オブジェクト、domなどは統一された約定がなく、それぞれの構造があり、異なる方法で巡回することができる.es 6では、巡回可能なデータセットをイテレーションプロトコルを遵守するイテレーションに統一し、割り当ての対象とすることができる.)
異なるデータプロバイダがそれぞれのポーリング方式を有する場合、データ消費者は、異なるデータプロバイダのすべてのポーリング方式をサポートしなければならない.これは非効率です.ただし、異なるデータプロバイダがイテレーションプロトコルを遵守することを規定する場合、データ消費者はイテレーションプロトコルをサポートするだけでよい.
この小バージョンプロトコルは、異なるデータプロバイダに対して、データ消費者とデータプロバイダを接続する「インタフェース」としてポーリング方式を規定し、データ消費者は異なるデータプロバイダを効率的に使用することができる.
->for for of文で、かわいいときにNextメソッドを内部で巡回し、データが生成されます.この遅延評価の利点は、より高速な実行速度、不要なメモリを消費せず、無限の表現能力を提供することです.
智英
この場合、再構成可能な自体が返されます.値は外部で変更できます.
この場合、maxは固定されます.fibonacci 2は、小さなオブジェクト自体です.
1.既存の巡回可能なデータ型を改善するために、イテレーションプロトコルが導入されているかどうかを示します。
->es 6以前の循環可能なデータセット(配列、文字列、類似配列オブジェクト、domなどは統一された約定がなく、それぞれの構造があり、異なる方法で巡回することができる.es 6では、巡回可能なデータセットをイテレーションプロトコルを遵守するイテレーションに統一し、割り当ての対象とすることができる.)
異なるデータプロバイダがそれぞれのポーリング方式を有する場合、データ消費者は、異なるデータプロバイダのすべてのポーリング方式をサポートしなければならない.これは非効率です.ただし、異なるデータプロバイダがイテレーションプロトコルを遵守することを規定する場合、データ消費者はイテレーションプロトコルをサポートするだけでよい.
この小バージョンプロトコルは、異なるデータプロバイダに対して、データ消費者とデータプロバイダを接続する「インタフェース」としてポーリング方式を規定し、データ消費者は異なるデータプロバイダを効率的に使用することができる.
2.次のデータ構造がなぜ...of文に変換して巡回してください。
const testData = {
0: 1,
1: 2,
2: 3,
length: 3
}
//풀이
//Array.from 으로 유사배열 객체 또는 이터러블을 배열로 변환한다.
const arr = Array.from(arrayLike);
console.log(arr);
3.反復可能な概念を使用して無限のフィボナッチ数列を生成する関数を作成し、このような形式で関数を実装および使用する場合に達成できる効果を説明します。
const fibonacciFunc = function() {
let [pre, cur] = [0,1];
return {
[Symbol.iterator](){return this;}
next(){
[pre, cur] = [cur, pre+ cur];
return {value: cur};
}
};
};
for (const num of fibonacciFunc()){
if(num > 10000) break;
console.log(num);
}
//3개 요소만 취득
const [f1, f2, f3] = fibonacciFunc();
console.log(f1,f2,f3)
->かわいい子はデータプロバイダの役割を果たします.配列や文字列などは、あらかじめすべてのデータを取得し、データを提供します.上記の例では、遅延評価によりデータを生成します.つまり、データが必要なときにデータを生成する方法です.->for for of文で、かわいいときにNextメソッドを内部で巡回し、データが生成されます.この遅延評価の利点は、より高速な実行速度、不要なメモリを消費せず、無限の表現能力を提供することです.
智英
1.かわいいかどうかを検証するために関数を実装します。
const isIterable = v => {
//구현하기
return v !== null && typeof v[Symbol.iterator] === 'function';
}
isIterable([]); //true
isIterable(""); //true
2.次の関数を関数に変更し、同時にイテレーションのオブジェクトを作成し、イテレーションに戻ります。
const fibonacci = function() {
[Symbol.iterator]() {
let [pre, cur] = [0,1];
const max = 10;
return {
next() {
[pre, cur] = [cur, pre + cur];
return {value : cur, done: cur >= max };
}
}
}
}
for (const num of fibonacci){
console.log(num);
}
//여기에 구현해 주세요!
let [pre, cur] = [0, 1];
const max = 10;
// 객체 자체를 리턴..
return {
[Symbol.iterator]() { return this; },
next() {
[pre, cur] = [cur, pre + cur];
return { value: cur, done: cur >= max };
}
}
}
この場合、再構成可能な自体が返されます.値は外部で変更できます.
この場合、maxは固定されます.fibonacci 2は、小さなオブジェクト自体です.
Reference
この問題について(🦎[深潜学習]34枚こわれやすい), 我々は、より多くの情報をここで見つけました https://velog.io/@leejyart/34.-이터러블テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol