Articles of foreach

使用forEach()将数组附加到对象中

我试图添加对象(事务)的数组到数组(票据)使用forEach循环和数组[键] .transactions添加对象。 我也尝试使用推,但也没有工作。 一些帮助将是可爱的。 var bills = [{ "_id": "5499aece1d7be6c6a3000001", "billName": "Insurance", "startDate": "2014-12-15T00:00:00.000Z", "amount": 2400, "type": 4, "timestamp": "2014-12-23T18:05:02.987Z", "__v": 0 }, { "_id": "549bf0597886c3763e000001", "billName": "Leasing", "startDate": "2014-12-25T00:00:00.000Z", "endDate": "2017-10-14T22:00:00.000Z", "amount": 16500, "type": 4, "timestamp": "2014-12-25T11:09:13.957Z", "__v": 0 }]; var transactions = [{ "_id": "549ea8c957b654ef64000003", "billId": "5499aece1d7be6c6a3000001", "paymentDate": "2014-12-27T12:40:41.311Z", "amount": 2400, "timestamp": "2014-12-27T12:40:41.311Z", […]

当function完成时Nodejscallback下一个循环

假设我们有一个脚本,它将为数组中的每一行执行特定的任务。 function execute(err, array){ loop(array, function(err,object){ console.log(object) //do a certain task when it's finished get into the next object successively. }); } function loop(array,callback){ array.forEach(function(object){ callback(null, object); }); } function array(callback){ callback(null, [1, 2, 3, 4, 5]); } setTimeout(function(){ array(execute); }, 6000); 问题: 如何完成任务后才能进入下一个循环? 我的function被认为是asynchronous的?

当每个函数结束时需要执行函数

我有节点js / firebase中的这个代码: ref.child("recipts").once("value", function(usersSnap) { usersSnap.forEach(function(reciptsSnap) { reciptsSnap.forEach(function(reciptSnap) { reciptSnap.ref.child("last_recipt").once("value", function(b) { b.forEach(function(c) { //Here I fill some "product" object }); }); reciptSnap.forEach(function(b) { //Here I fill some "product" object }); }); }); }); 当“reciptSnap”forEachs完成时,我需要执行一个函数。 我怎样才能做到这一点,我尝试使用variablesi ++和i–但只适用于每个迭代。 我调用的函数是用forEachs循环中的填充数据操纵我创build的产品对象。

Javascript中的For-In循环(Node.js)意外地遍历数组索引而不是元素

我有一个Node.js脚本,用于读取和分析JSON文件的内容,并遍历其根数组的元素; 当我试图检查这种迭代的对象时,我面临着一些意想不到的结果; 被迭代的对象似乎是被迭代的元素的索引。 这是脚本: if (process.argv.length != 3) { console.log("Usage: node chooseAdAmongAds.js /path/to/ads.json"); process.exit(9); } fs = require("fs"); var content = fs.readFileSync(process.argv[2], "utf8") var ads = JSON.parse(content); for (ad in ads) { console.log(ad); } JSON文件: [ { "impressions": 131, "ID": 514, "investment": 2 }, { "impressions": 880, "ID": 451, "investment": 5 }, { "impressions": 135, […]

承诺在foreach

我有一些关于逻辑的代码。 我下面的代码块按预期工作,所以willbeUpdatedvariables不能以同步的方式逐字更新。 var willbeUpdated = 1; anArray.forEach(function(i){ getPromisedData(i).then(function(d){ willbeUpdated += d; }); }); if (wiillbeUpdated == something) { // some logic } 所以问题是,我是否必须为这个foreach逻辑再次创build一个承诺的方法, outside if logic的话,那么在这种情况下是否是一个最佳实践或者其他可取的想法呢? 编辑:我问这个问题听到最好或更好的方法嵌套asynchronous函数处理,而不是确切的代码块,谢谢。

Node.js forEach:不能读取未定义的属性''

我从来没有见过这个。 这个错误发生在Node.js 6.3.0和6.9.1 LTS上,为了解决这个问题,我更新了这个错误。 我试图根据一些数据build立一个游戏的统计数据,并不是特别重要。 重要的是,下面的函数是我的游戏类的一部分,失败了: computeStats() { var stats , roster , team, opp, scoreState, oppScoreState , TOI = this.calculateTOIData() , eventCounter = this.calculateEventData() [['home', 'away'], ['away', 'home']].forEach((teams) => { //this is line 74 / error source team = teams[0]; opp = teams[1]; roster = this[team].roster; stats = { //some assignments occur here from […]

asynchronous请求在node.js中的ForEach中

我是新的node.js(和request.js)。 我想从不同path的特定url获取网站正文(在http://www.example.com/path1下方的示例中, http://www.example.com/path2等) )并使用键/值映射(下面的siteData [path])将这些数据logging在一个对象中。 var request = require('request'), paths = ['path1','path2','path3'], siteData = {}, pathLength = paths.length, pathIndex = 0; paths.forEach((path) => { var url="http://www.example.com/"+path; request(url, function(error, response, html){ if(!error){ siteData[path] = response.body; pathIndex++; if(pathIndex===pathLength){ someFunction(siteData); } } }); function someFunction(data){ //manipulate data } 我的问题是: if语句(index ===长度)看起来不像是确定asynchronous请求是否完成的正确方法。 我该如何正确检查请求是否完成? 当我执行上面的代码时,我得到一个错误(node) warning: possible EventEmitter memory leak […]

asynchronous每个和foreachfunction

我试图使用asynchronous的每个函数来调用abc函数,我遇到了一些问题。 代码如下。 我在这里使用for循环的原因是因为当我尝试使用每个函数时,传递到abc函数url的url是以数组而不是string的forms。 所以我想知道是否有任何其他的方式来清除这个,而不必添加for循环。 在添加一对print语句之后,我意识到代码从不执行传递http.get(url [a],newFileLoc,function(error,result){出于某种原因,总是有一个错误消息“async.each(urls,downloadFile (url,函数(){TypeError:对象#没有方法'每个'“ 所以我想我真正的问题是,代码究竟有什么问题? 我尝试使用forEach而不是每个,但仍然有另一个错误“迭代器(x,函数(错误){TypeError:undefined不是一个函数”)。 有人请帮忙! var abc = function ( url, cb ) { for (var a = 0; a < url.length; a++){ var index = url[a].lastIndexOf("/") + 1; var filename = url[a].substr(index); var newFileLoc = "./tmp/" + filename; http.get(url[a], newFileLoc, function (error, result) { if (error) { console.error(error); } […]

节点Js,续集和玉。 如何从他们之间获得数据 – 许多关联?

我正在做一个NodeJS + Sequelize + jadenetworking应用程序。 我有一个名为box的表格,另一个名为user。 用户与框具有一对多的关系。 我喜欢做的是列出并显示在玉模板中的所有箱子的细节,包括拥有它的用户。 首先,我使用sequelize工具创build了表格 module.exports = function(sequelize, DataTypes) { var User = sequelize.define('User', { name: { type: DataTypes.STRING, allowNull: false }, email: { type: DataTypes.STRING, allowNull: false, unique: true }, password: { type: DataTypes.STRING, allowNull: false }, dateOfBirth: DataTypes.DATE, role: { type: DataTypes.ENUM, values: ['ADMIN', 'USER'], defaultValue: 'USER' } },{ […]

如何识别循环已完成

我想尽量减less下面的代码。 在节点js中工作 var each = 0; var final = {}; // myLoop have some array values; myLoop.forEach(function(row) { //data retrive from db db.query('SELECT * FROM test where type=?',[row.type], function(err, result) { final[each] = result; each++; if (each == myLoop.length) { return final; } }); }); 上面的代码工作正常,但试图避免如果(每个== myLoop.length)条件。 有什么可用来确定循环完成? 有可能是这样的: myLoop.forEach(function(row) { //do needs }).done({ return […]