Tag: lodash

lodash mongoose ObjectId数组的联合

我有2个包含ObjectId项目的数组: array1 array2 我想创build这两个数组之间的联合。 为此,我正在运行: let res = _.union(array1, array2); 但res包含重复的ObjectId。 我如何解决这个问题?

用空值填充缺失的值

什么是最好的/最干净的解决scheme,find与unionObject相比在obj1中错过的字段,并添加值为null的缺失字段; 比如object1: var object1= { id: '123', name: 'test1' } 和unionObject是: var unionObject = { id: '124', name: 'test2', type: 'type2', files: { http: 'test12.com', https: 'test2.com' } } 所以这里object1缺less带有http和https字段的文件; 所以我希望的输出是: var desiredOutput= { id: '123', name: 'test1', type: null, files: { http: null, https: null } } 请注意,这不是我所需要的: var notDesiredOutput= { id: '123', name: […]

_.map覆盖返回值

使用lodash _.ma函数时,我一直在注意到一些奇怪的行为。 (这或我明显地忽略了一些东西) 我有以下几点: _this.searches = _.map(body.rows, function(row) { var tmpSearch = new Search(row.value); console.log(tmpSearch.search['name']); return tmpSearch.search; }); Search只是一个标准的JavaScript对象与一些原型function。 然而,当我检查_this.searches ,每个对象是相同的,我试图循环通过它得到一个更好的结果: _.forEach(_this.searches, function(search) { console.log(search['name']); }) _.map的console.log是这样的: 2015-04-03T14:14:29+0800 <log> searches.js:35 () test 2015-04-03T14:14:29+0800 <log> searches.js:35 () Test 2 2015-04-03T14:14:29+0800 <log> searches.js:35 () Testing search 这个_.forEach的console.log是这样的: 2015-04-03T14:14:29+0800 <log> searches.js:42 () Testing search 2015-04-03T14:14:29+0800 <log> searches.js:42 () […]

如何在枚举时修改对象的属性值

我正在做的API调用返回空对象来代替null 。 Tedious不喜欢这个,所以在我保存API响应之前,我使用以下函数清理数据: var object_to_return = input_object; _.forOwn(object_to_return, function(key_value) { if (_.isEmpty(key_value)) { object_to_return[key_value] = null; } }); return object_to_return; 这是不正确的,我很好奇,如果有人知道为什么,如何解决这个问题。 我特别感兴趣的是为什么,如果我还要打扰,甚至返回一个对象的副本(是通过引用传递,或…?)

为什么我似乎不能将普通对象合并到Mongo文档中?

我有一个来自第三方服务器的数据馈送,我正在将其转换为JSON。 数据馈送将永远不会有我的mongoDB的自动生成的_id s,但有一个唯一的标识符vehicle_id 。 下面的函数是处理如果存在具有相同vehicle_id的mongo文档,那么处理数据馈送生成的json对象fresh_event_obj并将其值复制到mongo文档中。 function update_vehicle(fresh_event_obj) { console.log("Updating Vehicle " + fresh_event_obj.vehicleID + "…"); Vehicle.find({ vehicleID: fresh_event_obj.vehicleID }, function (err, event_obj) { if (err) { handle_error(err); } else { var updated = _.merge(event_obj[0], fresh_event_obj); updated.save(function (err) { if (err) { handle_error(err) } else { console.log("Vehicle Updated"); } }); } }); } event_obj[0]和fresh_event_obj的结构是相同的,除了event_obj[0]具有_id和__v而“普通”对象没有。 当我运行_.merge这两个,甚至我自己的recursion函数,只是将值从后者复制到前者,尽pipefresh_event_obj具有所有新值,但updated对象中没有任何内容与event_obj[0]不同。 有没有人有任何想法我做错了? […]

无法导入lodash

我是新来的TypeScript和我在加载lodash时遇到问题。 这是我的代码: ///<reference path="../../typings/lodash/lodash.d.ts"/> ///<reference path="../interfaces/IScheduler.ts"/> import _ = require('lodash'); module MyModule { export class LeastUsedScheduler implements IScheduler { /// CODE HERE } } 我尝试通过以下方式replace导入行: import * as _ from lodash; 在这两种情况下,我得到: "error| Cannot find name 'IScheduler'." 当我删除导入指令时,它编译完美,但_在运行时未定义。 我也尝试把模块导入到模块中,但没有成功。 我很抱歉这一定是一个非常愚蠢的问题,但我无法弄清楚。 谢谢 编辑: 我明白了这个问题。 引用lodash的input在范围中创buildvariables_ 。 这就是为什么编译没有import线罚款。 问题是引用input不真的导入lodash。 这就是为什么它在运行时失败。 当我导入lodash时,编译失败,因为lodash已经在范围之内。 感谢您的支持。

Lodash没有办法“删除”

我正在关注我书中的websockets一个例子: var _ = require('lodash') var ws = require('ws') var clients = [] exports.connect = function(server) { var wss = new ws.Server({server: server}) wss.on('connection', function(ws) { clients.push(ws) ws.on('close', function() { _.remove(clients, ws) }) }) } exports.broadcast = … 上面的代码片段将新的websocket客户端添加到clients数组中。 当客户端closures连接时,它将从列表中删除。 我在_.remove(clients, ws)上收到以下错误: TypeError: Object function lodash(value) { // exit early if already wrapped, even if […]

无法通过Node.jsfind模块“lodash.curry”

我正在从Frisby教授的大部分“充足指南”的 Currying主题着手,在实现浏览器无法运行require()之后,我尝试通过npm安装lodash。 我一直在这里search使用类似的解决scheme,但不工作,我想使其在本地服务器上运行节点或使用script ,下面仍然是相同的结果,也ramda 。 Error: Cannot find module 'lodash.curry' at Function.Module._resolveFilename (module.js:327:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:355:17) at require (internal/module.js:13:17) at Object.<anonymous> (/Users/hueke32/Desktop/lodash_test/lodashTest.js:1:13) at Module._compile (module.js:399:26) at Object.Module._extensions..js (module.js:406:10) at Module.load (module.js:345:32) at Function.Module._load (module.js:302:12) at Function.Module.runMain (module.js:431:10) 的package.json { "name": "lodash_test", "version": "1.0.0", "description": "", "main": "lodashTest.js", "scripts": { "test": "echo \"Error: […]

Lodash使用一个字符的值从数组中创build一个数组

我有一个数组包含以下内容, var people = [{ _id: 0, name: 'Joe' }, { _id: 1, name: 'Jim' }, { _id: 2, name: 'Mary' }]; 所以用lodash,我想创build一个名为J任何想法的people的数组? 例如: var newPeople = _.filter(people, function(person) { return _.contains('J', person.name); }); 甚至更好: var newPeople = _(people).map(_.unary(_.partialRight(_.contains, 'J', 'name'))).value(); 以上任何function版本都会很棒。 提前致谢。

在Windows 10中的Nodejs lodash问题

Windows 10 64位 我试图玩这个回购: https : //github.com/mailgun/node-prelaunch 我有Mongodb和node.js一起运行,但似乎无法获得节点服务器运行。 我已经在主目录(C:\ Users \ me \ Desktop \ myproject \ node-prelaunch)中安装了lodash,其中package.js包含依赖关系,但仍然出现这些错误: C:\Users\me\Desktop\myproject\node-prelaunch>node server module.js:327 throw err; ^ Error: Cannot find module './lodash' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (C:\Users\me\Desktop\myproject\node- prelaunch\node_modules\express- validator\node_modules\lodash\index.js:1:80) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) […]