0

私は一日中オンラインで検索してきましたが、答えが見つからないようです。(そして、JavaScriptでこれを行う方法が必要であることを私は知っています)。

基本的に、オブジェクトの配列を検索して、必要な情報を含むオブジェクトを返すことができるようにしたいと考えています。

例:

誰かがサーバーに接続するたびに:

var new_client = new client_connection_info(client_connect.id, client_connect.remoteAddress, 1);

function client_connection_info ( socket_id, ip_address, client_status) {
    this.socket_id=socket_id;
    this.ip_address=ip_address;
    this.client_status=client_status; // 0 = offline 1 = online
};

ここで、「client_connection.id」または「ip_address」を検索し、そのオブジェクトを呼び出して使用できるようにしたいと考えています。例:

var results = SomeFunction(ip_address, object_to_search);
print_to_screen(results.socket_id);

私はJavaScriptを初めて使用しますが、これは私を大いに助けてくれます!

4

3 に答える 3

0

何を試しましたか?JSONからデータを変換し、辞書で検索するのと同じように検索することを検討しましたか?(わからない場合は、object ['ip_address']のようになります)

jQueryには、このjQuery.parseJSON(object)の関数があります。

于 2012-04-13T17:49:03.150 に答える
0

問題を正しく理解していると仮定すると、単にセレクターメソッドが必要なように聞こえます。

 function where(array, predicate)
 {
     var matches = [];
     for(var j = 0; j < array.length; j++)
        if(predicate(j))
           matches.push(j);

     return matches;
 }

次に、次のように単純に呼び出すことができます。

  var sample = [];

  for(var j = 0; j < 10; j++)
     sample.push(j);

  var evenNumbers = where(sample, function(elem)
  {
       return elem % 2 == 0;
  });

特定のアイテムを検索したい場合:

  var specificguy = 6;

  var sixNumber = where(sample, function(elem)
  {
       return elem == specificguy;
  });
于 2012-04-13T17:53:19.030 に答える
0

配列をループして、必要なオブジェクトが見つかったら停止する必要があります。

var arr = [new_client, new_client2, new_client3]; // array of objects
var found; // variable to store the found object
var search = '127.0.0.1'; // what we are looking for
for(var i = 0, len = arr.length; i < len; i++){ // loop through array
    var x = arr[i]; // get current object
    if(x.ip_address === search){ // does this object contain what we want?
        found = x;  // store the object
        break; // stop looping, we've found it
    }
}
于 2012-04-13T18:17:26.577 に答える