7
JavaScriptでオブジェクトを反復できないのはなぜですか?
オブジェクトがデフォルトで反復できないのはなぜですか? オブジェクトの反復に関連する質問が常にあります。一般的な解決策は、オブジェクトのプロパティを反復し、その方法でオブジェクト内の値にアクセスすることです。これは非常に一般的であるため、オブジェクト自体が反復可能ではないのはなぜか疑問に思います。 ES6のようなステートメントは、for...ofデフォルトでオブジェクトに使用すると便利です。これらの機能は、{}オブジェクトを含まない特別な「反復可能なオブジェクト」でのみ使用できるため、使用するオブジェクトに対してこれを機能させるには、フープを実行する必要があります。 for ... ofステートメントは、反復可能なオブジェクト (Array、Map、Set、argumentsオブジェクトなどを含む)を反復処理するループを作成します。 たとえば、ES6ジェネレーター関数を使用します。 var example = {a: {e: 'one', f: 'two'}, b: {g: 'three'}, c: {h: 'four', i: 'five'}}; function* entries(obj) { for (let key of Object.keys(obj)) { yield [key, obj[key]]; } } for (let [key, value] of entries(example)) { console.log(key); console.log(value); for (let [key, …