就目前而言,当我准备通过 Ajax 请求发送到我的 Web 应用程序的数据时,我只需连接我的 JS 数组(在它们之间放置 -1
作为分隔符 - 值可以是正数仅此,因此 -1
表示新数组的开始)。这对我来说似乎有点难看,所以我想知道重构它的最佳实践是什么。
var online1 = [];
var online2 = [];
var online3 = [];
var online4 = [];
for(i = 0 ; i < listOfPlayers.length ; i++) {
var player = listOfPlayers[i].href;
var uid = player.substring(player.lastIndexOf('=') + 1);
if(onlineStatus[i].className == "online1"){
online1.push(uid);
}
if(onlineStatus[i].className == "online2"){
online2.push(uid);
}
if(onlineStatus[i].className == "online3"){
online3.push(uid);
}
if(onlineStatus[i].className == "online4"){
online4.push(uid);
}
}
online1.push(-1);
online2.push(-1);
online3.push(-1);
online4.push(-1);
var result = online1.concat(online2, online3, online4);
//...
ajaxRequest.send("result="+result);
最佳答案
你可以做两件事:
使用一个对象,使用
JSON.stringify
将其字符串化。您可以使用 JSON.parse 来解析它,甚至存在服务器端解决方案。JSON
在最新的浏览器中可用,如 library .使
if
通用。
例如:
var online = {1: [],
2: [],
3: [],
4: []};
for(i = 0 ; i < listOfPlayers.length ; i++) {
var player = listOfPlayers[i].href;
var uid = player.substring(player.lastIndexOf('=') + 1);
var number = onlineStatus[i].className.substring(6);
online[number].push(uid);
}
var result = JSON.stringify(online);
//...
ajaxRequest.send("result="+result);
关于javascript - 我该如何重构这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090078/