Node.js 如何在json数组中查找文本
我正在制作一个游戏,它的功能之一是加入/创建私人房间。私人房间是随机生成的,但在生成房间之前,我想尝试确保房间id不存在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
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");
}
你尝试的东西有什么不起作用?当它失败时,你会得到什么错误?