Tag: for循环

在Node js中完成for循环时调用函数

function inboxUsers(){ for (var i=0; i<uniqueArray.length; i++){ var getUsername = 'SELECT userName FROM users WHERE userId = ' + uniqueArray[i]; db.query(getUsername, function(err, results) { if (err) { console.log('Error in database'); throw err; } for(var i in results){ console.log('single',results[i].userName); inboxUserList.push(results[i].userName); } }); } sample(); } function sample(){ console.log('same function'); } 这是我的控制台输出。 same function single user1 single […]

Node.js泄漏for..in循环

我正在使用一个自定义的对象处理库(对于考试,不能使用我不编程人员的东西,即JS.class),这往往会打破function的范围。 文件base.js /** * Module internals */ function _add() { var obj_out = arguments[0]; for (var i=1; i < arguments.length; i++) { var arg = arguments[i]; for(prop in arg) { obj_out[prop] = arg[prop]; } }; return obj_out; } function _merge() { var obj_out = {}; for (var i=1; i < arguments.length; i++) { var arg […]

for循环中的Async.waterfall不能正确迭代

这显然是一个非常简化的代码片段,但是我的代码库被这个例子设置为模仿。 当我尝试从async.waterfall函数中logging当前的for循环索引时,我得到2. 2是我的数组中的元素总数,但当然索引应该是0和1.我已经有效地使用过去在for循环中的async.MAP,所以我不知道为什么这个asynchronous函数不工作。 感谢您对这个问题的任何帮助或嵌套asynchronous库函数的主题。 var objects = [ {objectName: "hello", objectPurposes: ["demo"]}, {objectName: "goodbye", objectPurposes: ["demo", "fun"]}]; for (var i=0; i<objects.length; i++){ async.waterfall([ function(callback){ console.log(i); } ]) }

如果我们正在循环访问当前项目,哪个更适合/ forEach?

每个人都在说什么for更高性能,然后forEach例如 https://jsperf.com/for-vs-foreach/37 Javascript效率:“for”vs“forEach” 但是当访问循环中的当前元素时它是否成立。 如果不是,为什么不,如果是的话,下面的代码是什么呢,在不同的情况下会产生矛盾的结果: 逻辑: //—————————————- var arr = [], len = 1000000, nos = 100; for(var t = 0; t<len; t++) { arr.push({ a:'a',b:'b',t:Math.random() }); } //—————————————- //===========forEach start==================== var tp1 = new Date(); arr.forEach( (ik)=>{ let tmp = []; for(let x = 0;x<nos;x++){ tmp.push(ik.a); } }); var tp2 = new Date(); //===========forEach […]

等待Node.js表示应用程序调用http.request的for循环

我的头即将爆炸。 请知道,我等了大约一个星期才发布这个。 单凭耻辱,不能把这个混杂在浪费个人时间的巨大数量上,把我置于一个非常黑暗的地方。 我问你interwebs …请告诉我的方式。 我正在编写我的第一个NodeJS Express 4应用程序,它将pipe理我的家庭自动化系统(具有Rest API)。 杀死我的事情是我有99%的代码完成,我只是不能让它等待循环的http.request完成之前,调用我的callback函数出下面的函数。 我试过,DeAsync,Async,wait.for,…我似乎无法得到它主要是因为在一个for循环。 任何人都可以帮我解决这个问题。 我只是无法把我的脑袋绕过asynchronous或callback,以防止这个问题。 最主要的是它需要一个名为value对象的对象,然后循环它们,调用一个web服务,填充一个我调用的对象:ISYGetData,最后应该触发主callback,然后触发另一个函数来呈现一个web页面模板与响应中的数据。 任何帮助将不胜感激。 function runISYGet(runISYGetInput, resInput, runISYGetCallback) { //console.dir(runISYGetInput); //console.log('length:' + runISYGetInput.length); ISYGetData = []; for (var i = 0; i < runISYGetInput.length; i++) { // runISYGetInput Object Example: // runISYGetInput = [ // { id: "36981", operation: "on" } // , { […]

节点 – 等待循环完成?

当下面的函数完成并提供数组“相册”中项目的最终列表时,我希望它调用另一个函数/对列表执行其他操作。 目前它在函数完成之前发布[],我知道这是因为asynchronous执行,但我认为节点线性读取,因为它是单线程? function getAlbumsTotal(list, params){ for(var i = 0; i<list.length; i++){ api.getArtistAlbums(list[i], params).then(function(data) { for(var alb = 0; alb<data.body.items.length; alb++){ albums.push(data.body.items[alb].id); } }, function(err) { console.error(err); }); } console.log(albums); //do something with the finalized list of albums here }

JavaScript同步循环

当我的testing数据扩展到生产工作时,我一直在关注JavaScript的asynchronous行为。 我有一个for循环,我知道将在成千上万的范围内,节点暂停一个for循环,并回到它,或者我可以安全地假设节点将返回我的函数之前执行循环完成? 这是问题的循环: function fixData(dataset, blockcount){ for (var i = 0, len = dataset.length; i < len; i++) { var obj = dataset[i]; obj._id = obj.name; obj.expires = blockcount + obj.expires_in; delete obj.expires_in; } return dataset; }

在Javascript中的循环性能

正如我的研究让我相信,循环是JavaScript语言中最快的迭代构造。 我在想,也为for循环声明一个条件长度值会更快一些…为了使它更清晰,你认为下面哪个更快? 例子一 for(var i = 0; i < myLargeArray.length; i++ ) { console.log(myLargeArray[i]); } 例子TWO var count = myLargeArray.length; for(var i = 0; i < count; i++ ) { console.log(myLargeArray[i]); } 我的逻辑是这样的:在每次迭代中,在每次迭代中访问myLargeArray的长度在计算上都比较昂贵,那么访问如示例2所示的简单整数值?

Node.js:你如何处理循环中的callback?

我正在使用Node.js和Box SDK。 我的(失败!)代码如下所示: var connection = box.getConnection(req.user.login); connection.ready(function () { connection.getFolderItems(0, null, function (err, result) { if (err) { opts.body = err; } else { opts.body = result; var a = []; for (var i=0; i < result.entries.length; i++) { connection.getFileInfo(result.entries[i].id, function (err, fileInfo) { if (err) { opts.body = err; } else { a.push(fileInfo); […]

Javascript:for..in循环运行的次数比预期的多

在下面的代码中,user.roles的实际长度是1.但是,循环运行两次。 当我输出i的值时,第二次迭代显示为“diff”。 切换到普通的for循环解决了这种情况。 但是,我想知道for..in循环的问题是什么。 for (var i in user.roles) { if (user.roles[i].school.equals(schoolId)) { for (var j in user.roles[i].permissions) { for (var k in accessType) { if (user.roles[i].permissions[j].feature == featureKey) { if (user.roles[i].permissions[j][accessType[k]]) { return true; } } } } } } 更新:用户是一个对象,angular色是一个对象数组。 导致此问题的angular色实例如下所示: { "_id": "582d3390d572d05c1f028f53", "displayName": "Test Teacher Attendance", "gender": "Male", "roles": [ { […]