Tag: 数组

用mongoose在一个对象数组中插入一个唯一的对象

我用mongoose在对象数组中插入一个对象。 我的对象是这样的: name: { type: String, unique: true, required: true }, translations: [{ tag: { type: String, unique: true, required: true }, meaning: { type: String, required: true } }] 我想我的代码抛出一个错误,当已经有一个对象在“翻译”具有相同的“标签”值。 我目前正在这样做: Language.update( {name: languageName}, {$addToSet: { 'translations': { tag: aNewTag, meaning: aNewTranslation }}}, { upsert: false }, function(err) { if (err) console.log(err); else console.log('This […]

我如何使用dynamic生成的文件名数组在Grunt中运行任务?

我对使用Grunt相当陌生,但对于如何安装和运行任务有相当好的理解。 到目前为止,我能够运行所有我想要的东西,其中包括缩小js,复制文件和运行jshint。 我现在想运行“干净”从文件夹中删除文件,但只有一个选定的文件,我希望dynamic生成的数组。 所以,如果我有一个dynamic生成的数组,例如 var deleteFilenames = ["file3.js","file2.jpg","file7.html"] etc. 我将如何设置一个干净的任务删除这些文件? 任何帮助非常感谢。

当它已经被asynchronous地从别的地方改变时,防止改变数组?

在我的多用户live nods.js应用程序中,我有一个从数组中删除特定元素的函数。 这是一个asyn函数,可能被两个不同的用户独立调用,可能同时(客户端套接字触发器)在相同的数组上执行操作。 myUsers= []; myUsers.push('user1'); myUsers.push('user2'); myUsers.push('user3'); function removeUser(user){ for(var i=0; i<=myUsers.length; i++){ if(user===myUsers[i]){ myUsers.splice(i,1); break; } } } 我是否应该担心这可能会导致两个操作同时发生,从而消除错误的/无意识的元素? 类似地,当同时调用removeUser('user1')和removeUser('user3') (客户端套接字触发器)时,当user1正在拼接,并且user3已经到达i=2它可能会删除user2而不是user3 ? i甚至可能现在超过循环的原始限制(myUsers.length)? 我的担心是否有效? 如果是这样,那么解决scheme是什么?

Coffeescript数组范围没有界限

我正在学习coffeescript和我的一些代码使用非常方便的数组范围语法。 我的理解是使用[a..b]包含结果中的索引a和b ,并且[a…b]在结果中排​​除索引b 。 另外,我还以为[a..]会到达数组的末尾, [..b]会从数组的开头开始。 现在我的问题是,我有一些代码需要采取整个数组除了最后一个元素。 我定义它是 parameters[…] 认为这将排除最后一个元素(我没有指定一个端点,所以它应该走到最后, …是独占的)。 但是在我的testing中,它看起来像 parameters[…] == parameters[..] 所以我最终不得不写 parameters[…-1] 这对我来说很丑陋 我做错了什么,或者这是语言的错误/故意的一部分?

减less对象数组:根据另一个字段的值限制相似的字段

我需要一个快速的方式来执行此操作。 它必须快速。 在数组中,对象已按分数sorting。 我想为任何给定的rootTerm创build一个新的数组。 这是原来的。 "results": [ { "score": 100, "source": { "term": "bovine1", "rootTerm": "cow", } }, { "score": 50, "source": { "term": "bovine2", "rootTerm": "cow", } }, { "score": 10, "source": { "term": "bovine3", "rootTerm": "cow", } }, { "score": 10, "source": { "term": "scrofa", "rootTerm": "pig", } ] Bovine3并不是RootTerm牛最高得分最高的2个对象,所以我希望它被删除。 新的结果将是 "results": [ […]

node.js:返回一个模块中的数组

im新的node.js和编程本身。 我正在尝试在其他程序中调用函数,但是我从来没有得到结果。 我调用的函数工作正常,结果是正确的,调用函数也能正常工作,但是我想返回的数组只是不返回。 该程序运行没有错误(可悲的是没有输出在控制台上)。 我查了几个教程,但无法find与我所做的不同之处。 我试图把“返回(结果)”; 在函数的结尾(在closures最后一个“}”之前),但这样做数组又是空的。 我欣赏每一个想法。 问候,尼尔斯 1. prog: calling the function: var input = require('./einlesen.js'); var output = input.einlesen('GZV.csv', ';', 1, 2, function(err, yay) { console.log(output); }); 2. prog: the function: var einlesen = function(datei, trennzeichen, zelle1, zelle2) { var result = []; //Ergebnis array beinhaltet start und endknoten var fs = […]

3D数组覆盖其他维度的值JS

我似乎无法弄清楚我昨天写的这段代码我做错了什么。 这是我第一次鞭打JavaScript,第一次使用jQuery和Node.js,我会认为这个三维数组应该是原样。 我已经看到混淆提到什么multidimensional array和人们说,JavaScript没有任何,虽然它有arrays的数组。 无论如何,我想我在技术上使用一个数组的数组,并不明白为什么我的外部数组,我认为是一个外部维度的devise,overwrite从两个内部数组的元素到自己的元素。 两个内部数组似乎按照它们应该的方式工作,但是最外部的数组以某种我不了解的方式混合数据。 不一致/问题可以通过滚动这个代码生成的output.json文件来观察,并且看到输出显然不匹配这个网页上的三个表格: // My server.js file: var express = require('express'); var fs = require('fs'); var request = require('request'); var cheerio = require('cheerio'); var app = express(); // the link below is a tutorial I was loosely following // see http://scotch.io/tutorials/javascript/scraping-the-web-with-node-js app.get('/scrape', function(req, res) { url = 'http://espn.go.com/nba/player/stats/_/id/4145/kareem-abdul-jabbar' request(url, function(error, response, […]

如何更新数组中的对象内的数组?

我目前正在使用Node.js MongoDB驱动程序,并面临如下结构: users (database) users (collection) { name: bob, data: [ { name: mydata, relations: [ ** I want to addToSet here! ** ] }, { name: mydata2, relations: [] } ] }, { name: jeff, data: […same stuff…] } 所以,我有一个数组,这是在一个对象内,是在一个数组中,我的目标是添加一个条目。 我意识到这看起来像MongoDB不太适合的关系,但我试图容纳一些可能上传的关系数据。 有没有人碰巧知道一个方法来做到这一点? 不一定在一个查询中,只是以任何方式。

如何使用dot(。)通过Mongoose在Node.js中查询以及如何添加一个空数组

我有以下架构: var userSchema = new Schema({ userID: Number, userName: String, userEmail: String, teams:Array, socialMedias: { fbUID: String, googleUID: String, twitter: String } }); 首先,我如何添加一个空数组? 这是我正在做的以下方式吗? teams:{}, 其次,我正在尝试在我的Node.js中使用Mongoose进行查询,但在点('。')中出现错误: 这是我正在保存的文件: var user = new users({ userID: id, //give the id of the next user in Dbase userName: userName, userEmail: 'userEmail', teams:{}, socialMedias: [{socialMediaType: socialMediaID}] }); 其中userName,socialMediaType和socialMediaID是函数的参数。 所以,我添加这个文档后,我试图做下面的查询: […]

如何在范围循环上应用asynchronous?

据我所知, async只在数组上工作。 我的应用程序正在读取一个1.2GB的文件,我想在1024KB的部分读取它。 由于RAM问题,我想每次读取10个部分。 从文档中 , eachlimit(arr, 10, iterator, callback)对我来说都是正确的function。 问题是我不能把所有的部分放在数组中。 这是因为如果我能做到这一点,Ram的问题就会boost,而每个eachSeries都是多余的。 换一种说法。 我想切换下面的循环: for (var rangeStart = 0; rangeStart < stats.size; rangeStart = rangeStart + partSize) { //Where stats.size = 1200000000; partsize = 1024000, put the part of the file in the range into a buffer } 同步版本,以便我每次完成10个循环,然后继续。