私は決してJSに堪能ではないので、本当に基本的なことを求めていたら許してください。しかし、私の質問に対する適切な答えを見つけることができませんでした。
私は最初の Node.js (および Extra Framework と Socket.io) アプリを書いており、FB のようなメッセンジャーのサーバー側のセットアップを楽しんでいます (驚き!!!)。
したがって、オンライン ユーザーを格納するためのこのデータ構造があるとします (これは JSON 配列ですが、それが最善の方法であるかどうか、または Javascript オブジェクトを使用する必要があるかどうかはわかりません)。
[
{
"site": 45,
"users": [
{
"idUser": 5,
"idSocket": "qwe87r7w8qwe",
"name": "Carlos Ray Norris"
},
{
"idUser": 6,
"idSocket": "v8d9d0fgfs7d",
"name": "John Connor"
}
]
},
{
"site": 48,
"users": [
{
"idUser": 22,
"idSocket": "qwe87r7w8qwe",
"name": "David Bowie"
},
{
"idUser": 23,
"idSocket": "v8d9d0fgfs7d",
"name": "Barack H. Obama"
}
]
}
]
私がしたいのは、与えられた y の x 値を配列で検索することです。この場合、配列値を実行することなく、idUser を認識して idSocket を取得します。
基本的に 2 つの質問があります。まず、ユーザーをオンラインに保存する適切な方法は何ですか? 次に、既に知っている値と一致する値を見つける方法 (特定の idUser を持つ idSocket を見つける)。
純粋な JS アプローチ (または、Node、Socket.io、または Express によって提供されるツールの一部を使用) が必要ですが、それが不可能な場合は、JQuery を探すことができます。
EDIT 私はchovyのアドバイスを受け、構造を少し修正しました。今はこのようになっています
{
45: { // site
05: { // userId
"name": "Carlos Ray Norris",
"socketID": "qwe87r7w8qwe"
},
06: {
"name": "John Connor",
"socketID": "v8d9d0fgfs7d"
}
},
48: {
22: {
"name": "David Bowie",
"socketID": "erv7e6v876vr"
},
23: {
"name": "Barack H. Obama",
"socketID": "brt877brtt87"
}
}
}
Node.js のおかげで、このようなデータに簡単にアクセスできます (site と userId の値の両方を知っています) var socket = data[site]["05"].socketId
。これは Node.js のおかげで行われていると思いますが、完全にはわかりません。