标签:get 无法 var 技术分享 reac foreach 一个 cti new
for each (variable in object) {
statement
}
variable
var
关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.object
statement
{ ... }
) 将多条语句括住.
一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf
方法.不过,大部分的用户自定义属性都是可遍历的.
for...in
以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。
for (variable in object) { ... }
参数:
variable
object
for..in
不应该被用来迭代一个下标顺序很重要的 Array
.数组索引仅是可枚举的整数名,其他方面和别的普通对象属性没有什么区别。for...in 并不能够保证返回的是按一定顺序的索引,但是它会返回所有可枚举属性,包括非整数名称的和继承的。
因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。 因此当迭代那些访问次序重要的 arrays 时用整数索引去进行 for
循环 (或者使用 Array.prototype.forEach()
或 for...of
循环) 。
如果你只要考虑对象本身的属性,而不是它的原型,那么使用 getOwnPropertyNames()
或执行 hasOwnProperty()
来确定某属性是否是对象本身的属性 (也能使用propertyIsEnumerable
)。另外,如果你知道外部不存在任何的干扰代码,你可以扩展内置原型与检查方法。
var obj = {a:1, b:2, c:3}; for (var prop in obj) { console.log("obj." + prop + " = " + obj[prop]); } // Output: // "obj.a = 1" // "obj.b = 2" // "obj.c = 3"
var triangle = {a:1, b:2, c:3}; function ColoredTriangle() { this.color = "red"; } ColoredTriangle.prototype = triangle; var obj = new ColoredTriangle(); for (var prop in obj) { if( obj.hasOwnProperty( prop ) ) { console.log("o." + prop + " = " + obj[prop]); } } // Output: // "o.color = red"
for (variable of iterable) {
statement
}
variable
iterable
标签:get 无法 var 技术分享 reac foreach 一个 cti new
原文地址:https://www.cnblogs.com/tigerqaq/p/9943058.html