Tag: 数组

有没有像数组/对象混合的东西?

我使用了一个名为horseman的npm模块,它基本上是PhantomJS for Node。 当我控制台logging骑士对象的内容时,它拥有关于当前页面的各种数据。 包含在所有这些数据中的是一个页面的所有资源和它们的http状态代码的列表,如下所示: responses: [ 'http://tylertrotter.com/': 301, 'http://www.tylertrotter.com/': 200, 'http://www.tylertrotter.com/css/main.css': 200, … ] 它看起来像一个数组/对象混合,我从来没有遇到过这样的事情。 Array.isArray(responses) true但responses.length变为0 。 这是什么? 完整的骑士对象的完整控制台日志在这里: https : //gist.github.com/tylertrotter/be8da3e777c16a2b631d9de9fc94f70b

在不改变顺序的情况下浏览已经存在的对象

我知道,对象的属性不保证以任何特定的顺序存储或读取。 我遇到的问题是不能使用对象或数组。 我已经有一个很大的和非常嵌套的JSON文件,像这样: { "occasion": 23, "mayorstips": { "1": 0, "3": 0, "2": 0… 我只需要做一些修改。 这是我开始使用它的方式: var campaign = JSON.parse(fs.readFileSync(theJSONFile)); for(var plot in plots) { if(plots.hasOwnProperty(plot)) { switch(plots[plot].province) { case 'forest': … 当我完成后,我只是把它放回: fs.writeFileSync(theJSONFile, JSON.stringify(campaign)); 现在,我注意到了这个方法的两个问题: 原始间距格式丢失。 原始文件只是一个很长的行 ,需要一个长的行,所以任何JSON库的格式化尝试都没有帮助。 我解决了几个正则expression式replace。 现在“JSON行”文件被sorting 。 所以我从{ "1": 0, "3": 0, "2": 0到{ "1": 0, "2": 0, "3": 0 […]

Mongodb:一次更新同一文档中多个数组的元素

我用$push来更新一个数组的元素。 但是,当我试图更新多个数组的元素保持$push逗号分隔值如下,这是显示一个错误。 它是如何完成的? var conditions = { some condition }; var update = { $push : {Feedback : { Feedbacks:req.body.Feedbacks}}, {Strength : { Strengths:req.body.Strengths}}}; var options = { multi : true}; Model.update(conditions, update, options, callback); 架构是: Model : { Field1 : { type:Number }, Field2: { type : String }, Feedback : { type: Array, […]

玉的双数组显示

我有这个数组设置: var threads = ["one", "two", "three"] var data = [ [11,21,31], [12,22,32], [13,23,33], ] 我需要这样的HTML: one two three 11 21 31 12 22 32 12 23 33 现在我用nodejs(Express)将数组传递给我的layout.jade table thead each val in {threads} +tablethread(val) tbody -for (var i = 0; i < {data}.length; i++) { tr -for (var o = 0; o < […]

我怎样才能find一个数组中具有特定值的对象的索引?

由于标题不容易得到,我会举一个例子: var myObject = { "myArray": [{ "hashKey": "someHashkey1", "data": "someData1" }, { "hashKey": "someHashkey2", "data": "someData2" }, { "hashKey": "someHashkey3", "data": "someData3" }] }; 我有“myObject”包含“myArray”,现在我想有效地find对象的索引,例如,hashKey“someHashKey2”。 我可以build立自己的循环来检查数组中的所有元素,但是: 有没有一个内置的方式来做到这一点? 像indexOf()? 是否有一个NPM的工具,这种需要(我在Node.js工作) 有没有在这里工作的有效方式? 一些不好的方法来避免? [编辑:]我的效率问题是由于我将不得不做基本上所有的hashKeys这个操作。 我刚刚发现这个问题有一个“查找”的答案,可以帮助。 仍然在理解这一切的过程…

数组长度小于 – json中的空开销

我正在写一个简单的游戏。 它基于一个32×32的方块。 每个方块都可以包含一个游戏元素。 当一个元素出现/移动/变化时,服务器通过websockets向所有客户端发送一个json对象,该json对象包含一个类似于整个游戏场的二维数组。 发送到多个客户端时,这是相当多的数据,每秒多次。 所以我想知道如何减less这个。 我认为这将有助于从客户端已经收到的大arrays中删除一切。 但是,如果你有这样的事情: var gameField = []; gameField[6][10] = "player1"; console.log(JSON.stringify(gameField)); 它转换为: [null,null,null,null,null,null,[null,null,null,null,null,null,null,null,null,null,"player1"]] 这真的是不必要的开销。 难道不能生成这样的东西吗? {"6": {"10":"player1"}} 我正在使用node.js游戏服务器btw。 那么如何减less数据呢? 有没有特殊的JSON.stringify方法?

如果数组包含id mongoose,则获取数组

这是一个棘手的问题。 我以为我可以使用$,但在查询后,这不是我所期待的。 这是我的模式 var gameSchema = new mongoose.Schema({ state: { type: String, default: "invited" }, finished: { type: Boolean, default: false }, players: { type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'users' }], required: true, }, scores: [scoreSchema], chat : [chatSchema] }); 我试图做的请求是以下,我发送一个用户ID,如果播放器数组包含此Id,返回数组中的其他ID(数组将始终具有长度2)。 背景是,你可以查找你以前玩过的人。 这是我的,但“球员”应该是一个arrays,这不是我想要返回的游戏,所以 exports.getFriends = function(id, cb){ gameSchema.find({ id: { "$in": "players"} }, function(err, games){ […]

$ in在环回中不起作用

我有一个string数组,如下所示: ['57b69c9d4ae615ef0e312af6','57b69bf477b8e5cd0eb38c88']; 我将它转换为ObjectId,如下所示: var objectIds = []; for(var i=0; i<expenseIds.length; i++){ var _id = new ObjectId(expenseIds[i]); objectIds.push(_id); } 的ObjectID: [ 57b69c9d4ae615ef0e312af6, 57b69bf477b8e5cd0eb38c88 ] 现在我在mongoDb中使用$in查询所有的细节,如下所示: app.models.xxxxx.find({"_id" : {"$in" : objectIds}}, function(err, res){ if(err){ } else { console.log(res); } }); 但它没有过滤。 所有在收集的文件xxxxx正在返回..请分享您的想法。 提前致谢。 编辑:当我在mongo shell中运行命令: db.xxx.find({ _id: { '$in': [ 57b69c9d4ae615ef0e312af6, 57b69bf477b8e5cd0eb38c88 ] }}); 它抛出错误: SyntaxError: identifier […]

每个主题只有一次用户投票,但他们可以改变主意

我需要逻辑帮助。 我在我的网站上有评论“有用”和“不用”button。 我做到这一点,当用户点击它们时,我得到了一个usefulness: { usefulResult: 1, notUseful: 0, useful: 1 },的对象usefulness: { usefulResult: 1, notUseful: 0, useful: 1 },所以每次用户点击一个button,相应的属性就会增加。 useful – notUseful只是useful – notUseful 。 我现在面临的主要问题是,我想让一个用户只能为一个评论做一个投票,但他们以后可能会改变主意。 我知道如何找出哪个用户正在进行投票。 但我想不出逻辑,所以计数不会增加超过1票。 这是坏的:坏:用户可以继续点击不使用的button,不用的button计数器不断上升。 信息: usefulness对象具有针对特定评论的所有用户的计数,所以它可以已经从先前的数据填充。 所以可以说数据本来是usefulness: { usefulResult:-2 , notUseful: 5, useful: 3},并且一个新的用户投票useful它应该是usefulness: { usefulResult:-1 , notUseful: 5, useful: 4} ,如果他然后改变主意并且投票notUseful usefulness: { usefulResult:-3 , notUseful: 6, useful: 3} […]

Mongoose传递嵌套的sorting对象进行查询

我有以下查询,作为一个硬编码的string传递作品: router.get( '/rank/:round/', ( req, res, next ) => { let query = { "score.0.r1" : -1}; Team.find( {} ) .sort( query ) .then( teams => { return res.json( teams ); } ).catch( next ); } ); 但是,当我尝试通过我的路线参数:round像这样的:round : let query = { "score.0.r" + req.params.round : -1}; 它不起作用(它返回一个未sorting的列表)。 我也试过了: let sort = "score.0['r" + […]