Tag: 循环

循环中的JavaScript闭包 – 一个简单实用的例子

var funcs = []; for (var i = 0; i < 3; i++) { // let's create 3 functions funcs[i] = function() { // and store them in funcs console.log("My value: " + i); // each should log its value. }; } for (var j = 0; j < 3; j++) { funcs[j](); // and […]

请解释在循环中使用JavaScript闭包

我已经阅读了一些关于循环内部闭包和闭包的解释。 我很难理解这个概念。 我有这样的代码:是否有办法尽可能地减少代码,这样可以使闭包的概念更清晰。 我很难理解i在两个括号内的部分。 谢谢 function addLinks () { for (var i=0, link; i<5; i++) { link = document.createElement("a"); link.innerHTML = "Link " + i; link.onclick = function (num) { return function () { alert(num); }; }(i); document.body.appendChild(link); } } window.onload = addLinks;

Tkinter分配按钮命令与lambda循环

我试图创建几个按钮(与一个)像这样: def a(self, name): print name users = {"Test":"127.0.0.0", "Test2":"128.0.0.0"} row = 1 for name in users: user_button = Tkinter.Button(self.root, text=name, command=lambda: self.a(name)) user_button.grid(row = row, column = 0) row+=1 并为每个按钮获取自己的参数(测试获得测试和Test2得到Test2),但是当我按下按钮,他们都打印“测试2”,这意味着他们正在使用相同的参数相同的功能。 我该如何解决这个问题?

为什么我的函数调用应该通过setTimeout立即执行?

这是我的问题。 我有这个功能来测试代理服务器。 function crawl() { var oldstatus = document.getElementById('status').innerHTML; document.getElementById('status').innerHTML = oldstatus + "Crawler Started…<br />"; var url = document.getElementById('url').value; var proxys = document.getElementById('proxys').value.replace(/\n/g,','); var proxys = proxys.split(","); for (proxy in proxys) { var proxytimeout = proxy*10000; setTimeout(doRequest(url,proxys[proxy]), proxytimeout); } } 我希望“doRequest()”函数能以大约10秒的间隔被调用,但即使使用setTimeout()函数也会立即调用。 欢迎任何想法,谢谢。 PS:即使我为“proxytimout”放置了一个任意值,也没有任何影响。

循环浏览Bash中的文件内容?

如何用Bash迭代文本文件的每一行? 用这个脚本: echo "Start!" for p in (peptides.txt) do echo "${p}" done 我在屏幕上得到这个输出: Start! ./runPep.sh: line 3: syntax error near unexpected token `(' ./runPep.sh: line 3: `for p in (peptides.txt)' (后来我想用$ p做一些更复杂的事情,而不仅仅是输出到屏幕上。) 环境变量SHELL是(来自env): SHELL=/bin/bash /bin/bash –version输出: GNU bash, version 3.1.17(1)-release (x86_64-suse-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. cat /proc/version输出: Linux version 2.6.18.2-34-default (geeko@buildhost) (gcc […]

循环访问数组并删除项目,而不会打破循环

我有以下for循环,当我使用splice()删除一个项目,然后我得到'秒'是未定义的。 我可以检查它是否是未定义的,但我觉得可能有一个更优雅的方法来做到这一点。 希望是简单地删除一个项目,并继续前进。 for (i = 0, len = Auction.auctions.length; i < len; i++) { auction = Auction.auctions[i]; Auction.auctions[i]['seconds'] –; if (auction.seconds < 0) { Auction.auctions.splice(i, 1); } }