Tag: 数组

如何迭代node.js中的promise数组?

在JavaScript中,我有一个非平面的Promise数组: const array = [ [ promise11, promise12.. promise1n ], [ promise21, promise22.. promise2n ], [ promise31, promise32.. promise3n ], … [ promisek1, promisek2.. promisekn ] ]; 如何以这样一种方式遍历数组,在下一个承诺数组将在前一个承诺数组解决之后才开始解决? 例如,我希望脚本等待[ promise11, promise12.. promise1n ]承诺[ promise11, promise12.. promise1n ]解决,然后调用下一个承诺数组。 我正在寻找一个通用的解决scheme,因为我的应用程序无法预先知道需要多less个调用(这是一个webscrapper)。

在javascript中使用更高阶函数的原型函数

我试图concat使用减less数组的数组,我想我可以使用Array.prototype.concat函数是这样的: arr = [[1],[2],[3]] arr.reduce((a, b) => Array.prototype.concat(a, b), []) 哪些工作正常,并给我的数组[1, 2, 3] 。 然后我觉得我可以变得更聪明,像这样做: arr = [[1],[2],[3]] arr.reduce(Array.prototype.concat, []) 但是,这给我一个错误: TypeError: Array.prototype.concat called on null or undefined at Array.reduce (native) at Object.<anonymous> (/home/axel/Developer/temp/reduce2.js:2:5) at Module._compile (module.js:556:32) at Object.Module._extensions..js (module.js:565:10) at Module.load (module.js:473:32) at tryModuleLoad (module.js:432:12) at Function.Module._load (module.js:424:3) at Module.runMain (module.js:590:10) at run (bootstrap_node.js:394:7) […]

javascript更新或向数组添加值

我想给数组添加值。 但相同的值可能会更新。 例如我的数组是 [{"abc1":"123456"},{"abc2":"123456"}] 再次join的时候是abc1。 它可能会更新。 例如在正常情况下 [{"abc1":"123456"},{"abc2":"123456"},{"abc1":"123456"}] 但我想要 [{"abc2":"123456"},{"abc1":"123456"}] 我的代码 var categories = [], arrIndex = {}; addOrReplace({"abc1":"125"}); addOrReplace({"abc2":"126"}); addOrReplace({"abc1":"127"}); addOrReplace({"abc3":"129"}); function addOrReplace(object) { var index = arrIndex[object[0]]; console.log("index:"+object[0]); if(index === undefined) { index = categories.length; } arrIndex[object[1]] = index; categories[index] = object; } console.log(categories); 它没有显示正确的答案。 表明 [{"abc3":"129"}] 我想要 [{"abc2":"126"},{"abc1":"127"},{"abc3":"129"}] 怎么可能? 请帮帮我?

JS错误为:var没有定义。 我如何发送函数的价值

现在我有这个代码来创buildsitemap.xml,当我运行/sitemap.xml database = firebase.database(); var ref = database.ref('urls'); ref.on('value', gotData, errData); function errData(err){ console.log('Error!'); console.log(err); } function gotData(data){ result = data.val() return Object.keys(result) .filter(key => result[key].last_res > 5) .map(key => ({url: '/' + result[key].url_site + '/'})); var urls = gotData(data); } 当我尝试在gotData(数据)函数中运行console.log(url)时,它返回为 { salmon: { count: 1, last_res: 10, url_site: 'salmon' }, 'salmon-food': { count: […]

删除数组中的JSON数据

我想从JSON数组中删除一段数据。 例如,我有这个数组; var users = []; io.on('connection',function(socket){ socket.on('nickname', function(nick){ socket.nick = nick; users.push({ user:socket.nick, userid:socket.id, socket:socket }); }); 我试图用这种方式删除用户; socket.on('disconnect', function(){ delete users[{ user, userid, socket }]; }); }); 我怎样才能做到这一点?

在创build对象时,数组键不会被内插

我将JSON转换为数组并返回到单独的JSON对象(它与React和子对象有关)。 下面的数组工作正常,因为把数组元素放入variables中。 但是,当我试图从他们的obj,关键不起作用,它只是作为“myKey” – 为什么? 将数组元素转换为对象的正确方法是什么? var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var fetch = require('isomorphic-fetch'); app.use(bodyParser.json()); app.use(methodOverride()); var promise = new Promise(function(resolve, reject) { fetch('https://jsonplaceholder.typicode.com/posts/1').then( function(response){ return response.json(); } ).then(function(jsonData){ result = [] for(var i in jsonData) { result.push([i, jsonData [i]]); } var myKey […]

如何使用node.js将string添加到JSON中的数组?

我有一个不和谐的机器人,我想有一个数组,有滥用音量和音乐命令的用户ID,这样我就可以拿走他们的能力,并使用!nomusic和!musicback等命令给他们,但我有不知道如何让它添加或删除configuration文件中的数组的ids 。 我最好的猜测是使用fs ,并将其成员的id推入数组,但我不知道如何去做这个(我对node.js非常新,特别是fs ,所以很抱歉,如果这是一个真的很容易做的事情,真的很愚蠢的问) 到目前为止,这是我得到了多less(很多程序不包括在内,所以它更容易阅读) function readNoMusicJSON() { return JSON.parse(fs.readFileSync("./nomusic.json")); } var badmusicusers = readNoMusicJSON(); function nomusicsfoyou(badmusicusers, userId) { return nomusic.concat([userId]); } function saveNoMusicFile(badmusicusers) { fs.writeFileSync("./nomusic.json"); } bot.on('message', async message => { //some code ommited due to lack of importance var args = message.content.slice(config.prefix.length).trim().split(/ +/g); var command = args.shift().toLowerCase(); switch(command){ case"music": if(badmusicusers.find(id=>id == message.author.id)) […]

在数组对象中查询自动生成Shortid字段在mongodb上不工作?

我已经写了一个查询来查找特定对象的数组,但是它返回所有文档, 我的对象是 { "_id" : ObjectId("5a253ae1c14d9573f1f91088"), "accountId" : 1, "regionId" : "1", "problemId" : "399", "plannedDeliveryDate" : ISODate("2017-09-18T00:00:00.000Z"), "algorithm" : "GREEDYWITHREGRET", "numberOfTrips" : 0, "status" : "", "routes" : [ { "routeStartTime" : 36000, "routeEndTime" : 36450.1496791878, "totalRouteTravelTime" : 0.149679187838046, "totalRouteCost" : 16.1496791878312, "routeServiceTime" : 450, "totalRouteDistance" : 0.149679187831155, "originalLocationId" : "", "routeMethod" : "Manual", […]

NodeJS JSON数组过滤

我已经使用Node从SQL中检索一组结果,它们就像这样返回; [ { "event_id": 111111, "date_time": "2012-11-16T01:59:07.000Z", "agent_addr": "127.0.0.1", "priority": 6, "message": "aaaaaaaaa", "up_time": 9015040, "hostname": "bbbbbbb", "context": "ccccccc" }, { "event_id": 111112, "date_time": "2012-11-16T01:59:07.000Z", "agent_addr": "127.0.0.1", "priority": 6, "message": "aaaaaaaaa", "up_time": 9015040, "hostname": "bbbbbbb", "context": "ddddddd" }, ] 数组中通常有很多条目,我需要有效地过滤数组,以便仅显示具有“ccccccc”上下文的条目。 我已经尝试了一个for循环,但它非常慢。 任何build议?

Node.js只使用数组中的最后一项

Hi fellow Javascript / Node.js-Developer, 我遇到了一个很好的老问题与asynchronousJavaScript给我只有最后一个数组的项目(见这里和这里 )。 不幸的是,所提供的解决scheme都不适合我。 我在节点版本0.10.25上运行。 我编译了一个最小的(不)工作的例子: var neededTables = [{ name: "ipfix_exporters", },{ name: "ipfix_messages", }]; var params = {}; console.log('[1] Connected to hana-database'); neededTables.forEach(function(table) { params.table = table; console.log("Checking table: " + params.table.name); checkForTable.bind(null, params)(); }); function checkForTable(thoseParams) { setTimeout( (function(myParams) { return function(err, rows) { if(err) { console.log(err); return; […]