标签: loops

打破嵌套(for)循环的最佳方法是什么?

在Javascript中打破嵌套循环的最佳方法是什么?

//Write the links to the page.
for (var x = 0; x < Args.length; x++)
{
   for (var Heading in Navigation.Headings)
   {
      for (var Item in Navigation.Headings[Heading])
      {
         if (Args[x] == Navigation.Headings[Heading][Item].Name)
         {
            document.write("<a href=\"" 
               + Navigation.Headings[Heading][Item].URL + "\">" 
               + Navigation.Headings[Heading][Item].Name + "</a> : ");
            break; // <---HERE, I need to break out of two loops.
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

javascript loops break nested-loops

397
推荐指数
9
解决办法
22万
查看次数

如何迭代JavaScript对象?

我在JavaScript中有一个对象:

{
    abc: '...',
    bca: '...',
    zzz: '...',
    xxx: '...',
    ccc: '...',
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我想使用for循环来获取其属性.我想在部分中迭代它(不是一次所有的对象属性).

使用简单的数组我可以使用标准for循环:

for (i = 0; i < 100; i++) { ... } // first part
for (i = 100; i < 300; i++) { ... } // second
for (i = 300; i < arr.length; i++) { ... } // last
Run Code Online (Sandbox Code Playgroud)

但是如何用物体做呢?

javascript iteration loops object javascript-objects

361
推荐指数
7
解决办法
40万
查看次数

在Ruby中迭代数组的"正确"方法是什么?

对于它的所有瑕疵,PHP在这方面非常好.数组和哈希之间没有区别(也许我很天真,但这对我来说显然是正确的),并且要么迭代你要么做

foreach (array/hash as $key => $value)
Run Code Online (Sandbox Code Playgroud)

在Ruby中有很多方法可以做这种事情:

array.length.times do |i|
end

array.each

array.each_index

for i in array
Run Code Online (Sandbox Code Playgroud)

哈希更有意义,因为我总是使用

hash.each do |key, value|
Run Code Online (Sandbox Code Playgroud)

为什么我不能为数组做这个?如果我只想记住一种方法,我想我可以使用each_index(因为它使索引和值都可用),但是不得不这样做array[index]而烦人value.


哦,对,我忘记了array.each_with_index.然而,这一次吮吸,因为它去|value, key|hash.each|key, value|!这不是疯了吗?

ruby arrays loops

327
推荐指数
8
解决办法
50万
查看次数

在Ruby中,如何跳过.each循环中的循环,类似于'continue'

在Ruby中,如何在循环中跳过.each循环,类似于continue其他语言?

ruby iteration syntax loops

316
推荐指数
2
解决办法
16万
查看次数

做{...}而(0) - 有什么好处?

可能重复:
为什么在C/C++宏中有时会出现无意义的do/while和if/else语句?

我已经看了十多年了.我一直在努力思考它有什么好处.因为我主要在#defines中看到它,所以我认为它对内部范围变量声明和使用中断(而不是gotos)有好处.

对其他事情有好处吗?你用它吗?

c loops

315
推荐指数
4
解决办法
14万
查看次数

如何在JavaScript循环中添加延迟?

我想在while循环中添加延迟/睡眠:

我试过这样的:

alert('hi');

for(var start = 1; start < 10; start++) {
  setTimeout(function () {
    alert('hello');
  }, 3000);
}
Run Code Online (Sandbox Code Playgroud)

只有第一种情况是真的:显示后alert('hi'),它将等待3秒然后alert('hello')将显示,但随后alert('hello')将反复不断.

我想要的是,在alert('hello')3秒之后显示alert('hi')之后,它需要等待第二次3秒alert('hello'),依此类推.

javascript sleep loops

313
推荐指数
13
解决办法
40万
查看次数

在循环之前或循环中声明变量之间的区别?

我一直想知道,一般来说,在循环之前声明一个抛弃变量,而不是在循环内部重复,是否会产生任何(性能)​​差异?Java中的一个(毫无意义的)示例:

a)循环前的声明:

double intermediateResult;
for(int i=0; i < 1000; i++){
    intermediateResult = i;
    System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)

b)声明(重复)内循环:

for(int i=0; i < 1000; i++){
    double intermediateResult = i;
    System.out.println(intermediateResult);
}
Run Code Online (Sandbox Code Playgroud)

哪一个更好,一个还是b

我怀疑重复变量声明(例子b)在理论上会产生更多的开销,但是编译器足够聪明,所以它并不重要.实施例b具有更紧凑的优点,并且将变量的范围限制在其使用的位置.尽管如此,我倾向于根据示例来编码一个.

编辑:我对Java案件特别感兴趣.

java variables performance loops initialization

307
推荐指数
14
解决办法
13万
查看次数

如何跳过`foreach`循环的迭代?

在Perl中,我可以使用next;命令跳过foreach(或任何循环)迭代.

有没有办法跳过迭代并跳转到C#中的下一个循环?

 foreach (int number in numbers)
 {
     if (number < 0)
     {
         // What goes here to skip over the loop?
     }

     // otherwise process number
 }
Run Code Online (Sandbox Code Playgroud)

.net c# loops

304
推荐指数
7
解决办法
31万
查看次数

如何在Perl中打破循环?

我试图breakfor循环中使用一个语句,但由于我在Perl代码中也使用严格的subs,我收到一个错误说:

在./final.pl第154行使用"严格潜艇"时不允许使用Bareword"break".

有没有解决方法(除了禁用严格的潜艇)?

我的代码格式如下:

for my $entry (@array){
    if ($string eq "text"){
         break;
    }
}
Run Code Online (Sandbox Code Playgroud)

perl loops strict break

291
推荐指数
4
解决办法
55万
查看次数

如何循环C++地图的地图?

如何std::map在C++中循环?我的地图定义为:

std::map< std::string, std::map<std::string, std::string> >
Run Code Online (Sandbox Code Playgroud)

例如,上面的容器包含如下数据:

m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";
Run Code Online (Sandbox Code Playgroud)

如何遍历此地图并访问各种值?

c++ iteration dictionary loops idioms

287
推荐指数
6
解决办法
43万
查看次数