JSのfor...inとfor...ofの使い方
4894 ワード
前にプログラミング方法学を見て、forサイクルの基本的なフォーマットは
その後pythonに触れると、forループのフォーマットはもっと簡単で優雅で、for......in文だけでオブジェクトを直接遍歴することができます.
今日廖雪峰の公式サイトを見て、意外にもjsの中で更に不思議な操作を見て、for......of循環、これはpythonのforに似ています......in循環、jsの中にもfor......in循環がありますが、遍歴したのはオブジェクトの属性で、キー値の対の中のキーキーキーキーに似ていて、それがarrayを遍歴した時遍歴したのはarrayのインデックスで、
for...ofループはES 6が導入した新しい構文で、for...ofループで集合を巡り、次のように使用されます.
for...inループは、履歴に残された問題のため、実際にはオブジェクトの属性名を巡回します.Array配列は、実際にはオブジェクトでもあり、各要素のインデックスは属性とみなされます.Arrayオブジェクトに追加のプロパティを手動で追加すると、for...inループは予期せぬ予期せぬ効果をもたらします.
for...inループはnameを含めますが、Arrayのlength属性は含まれません.
for...ofループは、これらの問題を完全に修正し、集合自体の要素のみをループします.
for(init;test;step ){
statement
}
//
for(int i=0,i<10;i++){
...
}
その後pythonに触れると、forループのフォーマットはもっと簡単で優雅で、for......in文だけでオブジェクトを直接遍歴することができます.
for i in arry
今日廖雪峰の公式サイトを見て、意外にもjsの中で更に不思議な操作を見て、for......of循環、これはpythonのforに似ています......in循環、jsの中にもfor......in循環がありますが、遍歴したのはオブジェクトの属性で、キー値の対の中のキーキーキーキーに似ていて、それがarrayを遍歴した時遍歴したのはarrayのインデックスで、
var a = ['A', 'B', 'C'];
for (var i in a) {
alert(i); // '0', '1', '2'
alert(a[i]); // 'A', 'B', 'C'
}
for...ofループはES 6が導入した新しい構文で、for...ofループで集合を巡り、次のように使用されます.
var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // Array
alert(x);//'A', 'B', 'C'
}
for (var x of s) { // Set
alert(x);//'A', 'B', 'C'
}
for (var x of m) { // Map
alert(x[0] + '=' + x[1]);//1='x',2='y',3='z'
}
for...inループは、履歴に残された問題のため、実際にはオブジェクトの属性名を巡回します.Array配列は、実際にはオブジェクトでもあり、各要素のインデックスは属性とみなされます.Arrayオブジェクトに追加のプロパティを手動で追加すると、for...inループは予期せぬ予期せぬ効果をもたらします.
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
alert(x); // '0', '1', '2', 'name'
}
for...inループはnameを含めますが、Arrayのlength属性は含まれません.
for...ofループは、これらの問題を完全に修正し、集合自体の要素のみをループします.
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
alert(x); // 'A', 'B', 'C'
}