簡體   English   中英

我該如何重構呢?

[英]how can I refactor this?

至於現在,當我准備通過 Ajax 請求將我的數據發送到我的 web 應用程序時,我只是連接我的 JS arrays(在它們之間放置-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);

你可以做兩件事:

  1. 使用 object,使用JSON.stringify對其進行字符串化。 您可以使用JSON.parse解析它,甚至存在服務器端解決方案。 JSON在最近的瀏覽器和中可用。

  2. 使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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM