如何在javascript数组中按对象找到对象

时间:2013-12-22 02:25:33

标签: javascript arrays node.js object

我将websocket连接存储在数组中。这些是对象。我想在连接关闭时从数组中删除连接。

有什么方法可以找到哪个连接对象与关闭连接匹配并取消设置?

我认为indexOf无效,对吗?因为价值是一个对象......

.........................................

这是一些代码

var connections = [];

websocketServer.on('request', function(request) {
  var connection = request.accept(null, request.origin);

  connection.on('message', function(message){
    if(message.type !== 'utf8')
      return;

    var msg = JSON.parse(message.utf8Data);

    if(msg.txt == 'something'){
      connections.push(connection);
    }

  });

  connection.on('close', function(connection) {
    // here remove connection object from connections array

  });
});

2 个答案:

答案 0 :(得分:1)

您可以indexOf然后splice

var index = connections.indexOf(connection);
if(~index) connections.splice(index,1);

答案 1 :(得分:0)

使用underscore.js并致电_.isEqual(object, other);

下划线是一个用于JavaScript的实用程序带库,它提供了许多您在Prototype.js(或Ruby)中所期望的函数式编程支持,但没有扩展任何内置的JavaScript对象。它与jQuery的tux以及Backbone.js的吊带相配合。