Javascript Lodash没有方法';拆下';

Javascript Lodash没有方法';拆下';,javascript,node.js,websocket,lodash,Javascript,Node.js,Websocket,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)

下面是我书中关于
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
数组中。当客户端关闭连接时,它会将其从列表中删除。我在
上收到以下错误。删除(客户端,ws)

TypeError:对象函数lodash(值){
//如果已包装,则提前退出,即使由不同的“lodash”构造函数包装
if(value&&typeof value=='object'&&value.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu){
返回值;
}
//允许在不使用'new'运算符的情况下调用'lodash'
如果(!(此实例为lodash)){
返回新的lodash(值);
}
这是一个值;
}没有方法“删除”
在WebSocket。(/home/user/Projects/socialapp/websockets.js:15:6)
在WebSocket.EventEmitter.emit(events.js:117:20)
在WebSocket.cleanupWebsocketResources(/home/user/Projects/socialapp/node_modules/ws/lib/WebSocket.js:926:10)
位于Socket.EventEmitter.emit(events.js:117:20)
net.js:441:14
在进程中调用(node.js:415:13)
这在我的书中肯定是这样做的,我不明白为什么会出现这种错误,因为
remove
方法肯定存在


编辑:我正在使用
lodash
v<代码>3.10.1

可能与您的lodash版本有关。试着这样做:

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() {
            clients = _.without(clients, ws)
        })
    })
}
或者,您也可以简单地使用普通的旧javascript执行相同的操作

clients = clients.filter((client) => client !== ws);

使用的是哪个版本的
lodash
?@raina77ow我正在使用
“lodash”:“^3.10.1”
,刚刚安装了
npm
。不确定我的书使用的是哪个版本。没有提到。
clients = clients.filter((client) => client !== ws);