标签: for-in-loop

循环遍历window对象中的所有项

昨晚,我真的很无聊,我想到了一个小小的脚本.基本上我在考虑PHP与JavaScript相比有多少内置函数,然后我意识到我真的不知道JavaScript实际上有多少函数.我想过编写一个脚本来查看窗口对象,包括对象内的每个对象,等等.我编写了脚本并且它有效(在较小的对象上尝试过).

但是,我的问题是JavaScript不会让我循环整个windows对象.

我试过了:

for (var key in window) {
    console.log(key);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var a = Object.create(window);
for (var key in a) {
    console.log(key);
}
Run Code Online (Sandbox Code Playgroud)

两段代码都给了我:

top
window
location
external
chrome
Intl
v8Intl
document
script1374438467163
$pick
$try
IFrame
Elements
OverText
IframeShim
Mask
Clientcide
dbug
value
debugCookie
StyleWriter
StickyWin
TabSwapper
Collapsible
Collapsable
Drag
Cookie
Accordion
Asset
Spinner
MultipleOpenAccordion
MooTools
typeOf
instanceOf
Type
Hash
Native
$A
$arguments
$chk
$clear
$defined
$each
$empty
$extend
$H
$merge
$lambda
$mixin
$random
$splat
$time
$type
$unlink
Browser …
Run Code Online (Sandbox Code Playgroud)

javascript loops for-loop for-in-loop

6
推荐指数
1
解决办法
4069
查看次数

在不断变化的集合中使用 for .. in 进行迭代

我正在尝试使用循环对数组进行迭代for .. in ..。我的问题与在循环体内更改集合的情况有关。

似乎迭代是安全的,即使列表在此期间缩小。所述for迭代变量依次取的值(索引和)那些已经在循环的开始的数组中的元素,尽管在流所做的更改。例子:

var slist = [ "AA", "BC", "DE", "FG" ]

for (i, st) in slist.enumerated() {   // for st in slist gives a similar result
    print ("Index \(i): \(st)")
    if st == "AA" {    // at one iteration change completely the list
        print (" --> check 0: \(slist[0]), and 2: \(slist[2])")
        slist.append ("KLM") 
        slist.insert(st+"XX", at:0)   // shift the elements in the array
        slist[2]="bc"                 // replace some elements to come
        print (" --> …
Run Code Online (Sandbox Code Playgroud)

iteration collections language-lawyer for-in-loop swift

6
推荐指数
1
解决办法
187
查看次数

是一个if继续一个好的模式,以防止在Javascript中迭代属性时过度嵌套?

我通常使用此模式迭代对象属性:

for(var property in object) {
   if(object.hasOwnProperty(property)) {
      ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种过度的缩进,最近有人向我指出我可以通过这样做摆脱它:

for(var property in object) {
   if(!object.hasOwnProperty(property)) {
      continue;
   }

   ...
}
Run Code Online (Sandbox Code Playgroud)

我喜欢这个,因为它没有引入额外的缩进级别.这种模式是否正常,还是有更好的方法?

javascript loops object object-properties for-in-loop

5
推荐指数
1
解决办法
478
查看次数

JavaScript:无法使用的属性 - 何时以及为何?

我最近偶然发现了在JavaScript中使用for..in循环的问题.

根据这个 问题的答案,for..in旨在枚举对象的属性,包括继承的属性.

如果是这样,为什么我们能够使用Object.defineProperty将属性定义为不可枚举?这不符合for..in的全部意图吗?或者它被认为是不好的做法,应该避免?

另外,为什么我们要首先以这种方式迭代所有属性(即使用for..in循环)?什么时候可以派上用场?

为什么不将所有(Array)原型扩展定义为不可枚举并继续使用for..in和数组?

javascript arrays enumerable for-in-loop

5
推荐指数
1
解决办法
119
查看次数

更改数组中每个项目的属性?

我需要设置此数组中每个项目的值,然后向上计数。

因此,例如,path [0] .value = 1,path [1] .value = 2等等。

编辑:我正在寻找最有效的方法来做到这一点。

我认为for循环是最好的方法,但是我想学习其他方法。可以使用map()方法或forEach()完成吗?声明中的...呢?我想用纯JS来做,但是如果您可以教我使用jQuery更好的方法,我也很想学习。

提前致谢。

function Cell(x,y){
    this.xCoordinate = x;
    this.yCoordinate = y;
    this.value;
}
var path = [new Cell(0,0), new Cell(0,1), new Cell(0,2)];
Run Code Online (Sandbox Code Playgroud)

javascript arrays foreach jquery for-in-loop

5
推荐指数
1
解决办法
1911
查看次数

JavaScript中for vs for var之间的区别

我在PHP中填充关联数组,并在JS函数中访问该数组。我使用json_encode()将PHP数组转换为JS数组。我使用IE 8运行此应用程序。在使用IE 8的某些计算机中,for(;;)可以工作,但在其他计算机中则失败。在某些使用IE 8的计算机中,for(var in)可以工作,但在其他计算机中则失败。以下代码有什么区别?

for (var k = 0; k < ruleList.length; k++){ //do something } 

for (var x in ruleList){ //do something }
Run Code Online (Sandbox Code Playgroud)

javascript for-loop for-in-loop

5
推荐指数
1
解决办法
1297
查看次数

dart 中的 for-in 循环顺序

如果我for-in在 dart 中使用循环List,是否可以保证迭代的顺序正确?例如执行以下代码

List bars = getSomeListOfBars();

for(bar in bars){
    foo(bar);
}
Run Code Online (Sandbox Code Playgroud)

与以下完全相同的方式?

List bars = getSomeListOfBars();

for(int i=0;i<bars.length;i++){
    foo(bar[i]);
}
Run Code Online (Sandbox Code Playgroud)

我没有dart在任何地方找到具体的解释,谢谢。

for-in-loop dart

5
推荐指数
1
解决办法
5120
查看次数

Swift 中带有数组的 For-In 循环中迭代器元素的可变性

我在 Swift 3.0 中有一些代码,就像这样尝试更新元素数组中的属性......

for point in listOfPoints {
    var pointInFrame : Float = Float(point.position.x * sensorIncomingViewPortSize.width) + Float(point.position.y)
    point.status = getUpdateStatus( pointInFrame )
}
Run Code Online (Sandbox Code Playgroud)

但是我收到一个编译错误:“无法分配给属性:‘point’是一个‘let’常量”[第 3 行]

无论如何,有没有办法使迭代器(点)在 Swift 中可变,就像如何使用“inout”作为函数参数?

或者你应该以另一种方式完成这项任务?

提前致谢。

斯坦

arrays iterator immutability for-in-loop swift

5
推荐指数
1
解决办法
1608
查看次数

eslint 错误“guard-for-in”不清楚如何使用 for-in

我正在使用 Cucumber js,我想填写应用程序中的一些字段,所以我使用 for-in 从 rowHash 中获取数据,但我收到错误消息“for 的正文- in 应该包含在 if 语句中,以从原型 guard-for-in 中过滤不需要的属性”我不确定我应该如何使用 for 中的 if 来编码我的 for-in。

这是我的代码:

this.fillRequiredfields = function(dataTable){
  var rows = dataTable.rowsHash();
  for (var row in rows) {
    var val = rows[row];

    if (row === 'firstname') {
      element(by.name('firstName')).sendKeys(val).isPresent();
    }
    if (row === 'lastname') {
      element(by.name('lastName')).sendKeys(val).isPresent();
    }
    if (row === 'emailaddress') {
      element(by.name('emailAddress')).sendKeys(val).isPresent();
    }
    if (row === 'displayname') {
      element(by.name('displayName')).sendKeys(val).isPresent();
    }
    if (row === 'password') {
      element(by.name('newPassword')).sendKeys(val).isPresent();
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试在 git 中进行提交时,我从 eslint 获得了“guard-for-in”。如果有人可以向我解释我应该如何在 for-in …

javascript automation cucumber for-in-loop eslint

5
推荐指数
2
解决办法
6820
查看次数

Python“in”运算符与“for”循环和“if”语句

我在for循环和if语句中使用 python in运算符。我的问题是如何实现的,在这两种情况下它的行为不同:它在使用for循环时进行迭代,并在使用if语句时检查某些元素是否存在?这是否取决于forif的实现?

    for i in x:
        #iterates

    if i in x:
        #checks weather i in x or not 
Run Code Online (Sandbox Code Playgroud)

python if-statement for-in-loop

5
推荐指数
1
解决办法
1万
查看次数