Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在json数组中查找文本_Node.js_Json - Fatal编程技术网

Node.js 如何在json数组中查找文本

Node.js 如何在json数组中查找文本,node.js,json,Node.js,Json,我正在制作一个游戏,它的功能之一是加入/创建私人房间。私人房间是随机生成的,但在生成房间之前,我想尝试确保房间id不存在 var rooms = { 'ROOM ID GENERATED RANDOMLY': Room { id: 'ROOM ID GENERATED RANDOMLY', players: [], gameState: 'WAITING', currentCard: 'g:2', currentPlayerInde

我正在制作一个游戏,它的功能之一是加入/创建私人房间。私人房间是随机生成的,但在生成房间之前,我想尝试确保房间id不存在


var rooms = {
  'ROOM ID GENERATED RANDOMLY':
    Room {
     id: 'ROOM ID GENERATED RANDOMLY',
     players: [],
     gameState: 'WAITING',
     currentCard: 'g:2',
     currentPlayerIndex: NaN,
     currentDirection: 1,
     cardsStack: [] },

  'ROOM ID GENERATED RANDOMLY':
    Room {
     id: 'ROOM ID GENERATED RANDOMLY',
     players: [ [Player] ],
     gameState: 'WAITING',
     currentCard: 'g:2',
     currentPlayerIndex: 0,
     currentDirection: 1,
     cardsStack: [] },

   ...
}
已经试过了

        var SEARCH = 'x';
        for (var i=0; i < rooms.length; i++) {
            console.log(rooms[i])
            if (rooms[i].Room.id === SEARCH) {
                return rooms[i];
            }
        }
var搜索='x';
对于(变量i=0;i
试试这个功能

function roomIdIsUnique (newKey) {
    var roomKeys = Object.keys(rooms);

    for (const key of roomKeys) {
        if (key === newKey) return false;
    }

    return true;
}

var rooms = { /* Room objects */ }
var newRoomKey = /* Generate new room key code */

if (roomIdIsUnique(newRoomKey)) {
    /* Continue */
} else {
    /* Do something else */
}

这个问题很模糊,但我会尽力回答

您可以使用
Object.keys()
获取包含键的数组,然后在该数组上运行
array\indexOf
函数。如果键不在数组中,它将返回
-1
,否则它将返回索引

var rooms = { "key1": { property: "123" }, "key2": { property: "abc" } }
if(Object.keys(rooms).indexOf(SEARCH) != -1) {
    alert("Room id exists");
} else {
    alert("Room does not exist");
}

你尝试的东西有什么不起作用?当它失败时,你会得到什么错误?