Socket.io socketio ip:为什么ipfix变量/用户名没有改变 io.on('connection',函数(socket){ var ip=socket.request.connection.remoteAddress; var ipfix=ip;//复制了ip,因为我认为它可能是一个常量 对于(var g=0;g
其目的是从ip中删除点、冒号和“f”Socket.io socketio ip:为什么ipfix变量/用户名没有改变 io.on('connection',函数(socket){ var ip=socket.request.connection.remoteAddress; var ipfix=ip;//复制了ip,因为我认为它可能是一个常量 对于(var g=0;g,socket.io,Socket.io,其目的是从ip中删除点、冒号和“f” 对我来说,这似乎非常合理,但每次我运行它时,它都会打印出用户名,而不会更改在IP中看到的值,即使IP被复制到ipfix并进行迭代。我发现了一个修复,与C不同,javascript字符串是不可变的-解决方案是使用ipfix=IP.split(“”); io.on('connection', function(socket){ var ip = socket.request.connection.remoteAddress; var ipfix = ip;
对我来说,这似乎非常合理,但每次我运行它时,它都会打印出用户名,而不会更改在IP中看到的值,即使IP被复制到ipfix并进行迭代。
我发现了一个修复,与C不同,javascript字符串是不可变的-解决方案是使用
ipfix=IP.split(“”);
io.on('connection', function(socket){
var ip = socket.request.connection.remoteAddress;
var ipfix = ip; // made a copy of ip cause thought it may be a constant
for (var g = 0; g < ipfix.length; g++)
{
if (ipfix[g] == 'f' || ipfix[g] == ':')
{
ipfix[g] = '';
console.log("changed to nothing"); // logs to console
}
if (ipfix[g] == '.')
{
ipfix[g] = '0';
console.log("changed to zero"); // logs to console
}
}
var username = 'User#' + ipfix[9] + ipfix[8] + ipfix[11] + ipfix[13];
console.log(username); // Logs, no change to dots / f / :
}