在隨機表決我的問題並提示我使用拼接之前,可能實際上讀取了我正在嘗試執行的操作。謝謝。刪除數組的元素
我正在寫一個node.js聊天機器人和我需要刪除數組的特定元素之一的命令。
這是命令如何工作:
中的項目「富」,「酒吧」,「巴茲」被添加到稱爲raidLoot陣列。對於這些數組元素中的每一個,都會創建一個數組,供用戶添加,併爲每個數組選擇一個隨機用戶。因此,如果我有raidLoot = [foo]和另一個名爲foo = [userA,userB,userC]的數組,則在選擇其中一個用戶後,應從raidLoot中刪除'foo'。
這是相關代碼
case 'loot':
query(connection, 'SELECT * FROM channel WHERE name = "' + userName + '"').done(function (result) {
if (result[0].length !== 0) {
if (args[1] === 'clear') {
raidLoot = []
send_PRIVGRP_MESSAGE(botId, userName + ' cleared the loot list')
} else {
raidLoot.push(args.slice(1).join(' '))
send_PRIVGRP_MESSAGE(botId, userName + ' added ' + args.slice(1).join(' ') + ' to slot #' + raidLoot.length + '. Use !add ' + raidLoot.length + ' to join ')
lootSlot[raidLoot.length] = []
}
} else {
send_MESSAGE_PRIVATE(userId, 'You have to join the channel first')
}
})
break;
而這正是我的問題是:
exports.flatroll = flatroll = function (userId, args) {
if (raidLoot.length === 0) {
send_MESSAGE_PRIVATE(userId, 'There is no loot')
return
}
connectdb().done(function (connection) {
checkAccess(userId).done(function (result) {
userAc = result
access_req(connection, 'rem').done(function (result) {
if (result[0].length === 0 || result[0].length > 0 && result[0][0].status === 'enabled') {
if (result[0].length === 0 || result[0][0].access_req <= userAc) {
getUserName(connection, userId).done(function (result) {
userName = result[0][0].name
if (!args) {
winnerList = '<center> <font color=#FFFF00> :::Flatroll Results::: </font> </center> \n'
for (loot in raidLoot) {
winnerList += '<font color=#00FFFF>Slot #' + (+loot + 1) + '</font> \n'
winnerList += 'Item: ' + raidLoot[loot] + '\n'
if (lootSlot[+loot + 1].length === 0) {
winnerList += 'Winner: No one added \n'
} else {
winnerList += 'Winner:</font><font color=#00FF00>' + _.sample(lootSlot[+loot + 1]) + '</font> \n'
lootSlot[+loot + 1] = []
raidLoot.splice(loot, 1) // This is the line I need a better alternative for.
}
winnerList += '<img src=tdb://id:GFX_GUI_FRIENDLIST_SPLITTER>\n'
}
send_PRIVGRP_MESSAGE(botId, blob('Winner List', winnerList))
connection.release()
} // else with args
})
} else {
connection.release()
send_MESSAGE_PRIVATE(userId, 'Access Denied')
}
} else {
connection.release()
send_MESSAGE_PRIVATE(userId, 'Command Disabled')
}
})
})
})
}
'raidLoot.splice(搶劫,1)' 這確實工作它應該怎樣,但結果不是我所需要的,如果添加了多個項目並且用戶只加入其中一個項目,那麼顯示的列表將包含除最後一個項目以外的所有項目,修改raidLoot的長度以便循環不會到達最後一個項目並且如此多項目,少顯示。
我是新節點,做這個項目的方式來學習,所以不要在惡劣的我福利局代碼:)
請節點+ HTML4傷害我的眼睛。 – moonwave99
html用於遊戲內的窗口,這個bot是MMORPG,沒有別的選擇,因爲它只接受非常基本的html。 – Trax