我正在尝试在阵列的前面添加一个特定的项目,但我无法弄清楚如何做到这一点?我知道你是使用unshift进行的,但我不确定如何使用键值数组进行操作?
var outgoingHeaders = {
"send_client_version": 1,
"send_auth_ticket": 5
};
function sendPacket(packetName, packetData) {
const packetId = outgoingHeaders[packetName];
const packetArray = {'packet_id' : packetId };
// TODO: Add packetArray at the start of packetData
socket.send(JSON.stringify(packetData));
}
调用它的示例......
sendPacket('send_auth_ticket', {
'auth_ticket' : authTicket,
});
答案 0 :(得分:0)
您可以使用concat
数组方法,例如:
function sendPacket(packetName, packetData) {
const packetId = outgoingHeaders[packetName];
const packetArray = [{'packet_id' : packetId }];
const data = packetArray.concat(packetData);
socket.send(JSON.stringify(packetData));
}
关于这一点很好,你保持变量的不变性:)
答案 1 :(得分:0)
由于您没有提供任何JSON示例,因此这是一个建议:
var outgoingHeaders = {
"nameee" : 33
}
function sendPacket(packetName, packetData) {
var packetId = outgoingHeaders[packetName];
var packetArray = {'packet_id' : packetId };
// TODO: Add packetArray on the front of packetData
packetData.unshift(packetArray);
console.log(JSON.stringify(packetData, null, 4));
}
sendPacket("nameee", [{'packet_id' : 14 }, {'packet_id' : 5 }])