我在Javascript中遇到了奇怪的行为。我懂了
“对象不支持此属性或方法”
removeAttribute
以下代码中的函数异常:
var buttons = controlDiv.getElementsByTagName("button");
for ( var button in buttons )
button.removeAttribute('disabled');
当我使用以下代码更改代码时,问题消失了:
var buttons = controlDiv.getElementsByTagName("button");
for ( var i = 0; i < buttons.length; i++ )
buttons[i].removeAttribute('disabled');
button
inside的值是for...in
多少?
for..in
用于数组迭代。重要的是要了解,[]
用于访问索引的Javascript数组的方括号语法()实际上是从Object
… 继承的。
obj.prop === obj['prop'] // true
该for..in
结构不能像for..each/in
其他语言(php,python等)中所看到的那样更传统。
Javascript for..in
旨在迭代对象的属性。产生每个属性的密钥。结合使用此键和Object
的方括号语法,您可以轻松访问所需的值。
var obj = {
foo: "bar",
fizz: "buzz",
moo: "muck"
};
for ( var prop in obj ) {
console.log(prop); // foo / fizz / moo
console.log(obj[prop]); // bar / buzz / muck
}
并且由于数组只是具有 顺序数字属性名称(索引)的对象,因此其for..in
工作方式类似,因此产生数字索引的方式与生成上面的属性名称相同。
该for..in
结构的一个重要特征是,它将继续在原型链中寻找可枚举的属性。它还将迭代 继承的可枚举属性
。您有责任验证当前属性是否直接存在于本地对象上,而不是它所附加的原型是否存在于本地对象上hasOwnProperty()
。
for ( var prop in obj ) {
if ( obj.hasOwnProperty(prop) ) {
// prop is actually obj's property (not inherited)
}
}
for..in
在Array类型上使用结构的问题在于,无法保证生成属性的顺序…通常来说,这在处理数组时至关重要。
另一个问题是它通常比标准for
实现慢。
使用a for...in
来迭代数组就像使用螺丝刀的the子来钉钉子…为什么不只用锤子(for
)?
for ... in循环用于循环对象的属性。 以下是'for ... in'循环的语法。 for (variablename in object) { statement or block to execute } 在每次迭代中,来自对象的一个属性被分配给变量名称,并且此循环继续,直到对象的所有属性都用完为止。 例子 (Example) var obj = {a:1, b:2,
for ... in循环用于循环对象的属性。 以下是'for ... in'循环的语法。 for (variablename in object){ statement or block to execute } 在每次迭代中,来自对象的一个属性被分配给变量名称,并且此循环继续,直到对象的所有属性都用完为止。 例子 (Example) void main() { var
和 in 操作符一样,for in 循环同样在查找对象属性时遍历原型链上的所有属性。 注意: for in 循环不会遍历那些 enumerable 设置为 false 的属性;比如数组的 length 属性。 // 修改 Object.prototype Object.prototype.bar = 1; var foo = {moo: 2}; for(var i in foo) { c
Swift 循环 Swift for-in 循环用于遍历一个集合里面的所有元素,例如由数字表示的区间、数组中的元素、字符串中的字符。 语法 Swift for-in 循环的语法格式如下: for index in var { 循环体 } 流程图: 实例 1 import Cocoa for index in 1...5 { print("\(index) 乘于 5 为:\(i
问题内容: Javascript中的“ for…in”循环是否按声明的顺序遍历哈希表/元素?有没有按顺序执行的浏览器? 我希望使用的对象将被声明 一次, 并且永远不会被修改。 假设我有: 我进一步将它们用于: 我是否可以期望在大多数体面的浏览器中,“ A:“ Hello””总是排在“ B:“ World””之前? 问题答案: 当前,所有主流浏览器都按照定义它们的顺序遍历对象的属性。Chrome可以
本文向大家介绍javascript中for/in循环及使用技巧,包括了javascript中for/in循环及使用技巧的使用技巧和注意事项,需要的朋友参考一下 JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 while - 当指定的条件为 true 时循环指定的代码块 do/while - 同样当指定的条件为 true 时循环指定