0

e コマース サイトで最後に表示された一定数の製品を収集するコードを書いています。私はそれをうまく書くことができますが、 for または while ループでそれを行うより簡単な方法があるはずです。将来、さらに多くの製品を保存する必要があると判断した場合は、より多くのコードを記述する必要があり、アイテムごとに n+1 長くなります。これが今のコードです(最大3項目)

    var url = $.cookie('mycookie');
    var myArray = url.split('»');
    var myArrayLen=myArray.length;

    if (myArrayLen == 1){
          if (url==currentUrl)
            {
                var recentProducts='';
                $.cookie('mycookie', '»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                $.cookie('mycookie', url+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
        }


        else if (myArrayLen == 2){
            if (currentUrl==myArray[1])
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[2] + '">Link2</a>';
                $.cookie('mycookie', '»'+myArray[2]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else if (currentUrl==myArray[2])
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                $.cookie('mycookie', '»'+myArray[1]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                recentProducts += '<a href="' + myArray[2] + '">Link2</a>';
                $.cookie('mycookie', '»'+myArray[1]+'»'+myArray[2]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
        } 



        else if (myArrayLen == 3){
            if (currentUrl==myArray[1])
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[2] + '">Link1</a>';
                recentProducts += '<a href="' + myArray[3] + '">Link2</a>';
                $.cookie('mycookie', '»'+myArray[2]+'»'+myArray[3]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else if (currentUrl==myArray[2])
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                recentProducts += '<a href="' + myArray[3] + '">Link2</a>';
                $.cookie('mycookie', '»'+myArray[1]+'»'+myArray[3]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else if (currentUrl==myArray[3])
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                recentProducts += '<a href="' + myArray[2] + '">Link2</a>';
                $.cookie('mycookie', '»'+myArray[1]+'»'+myArray[2]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
            else
            {
                var recentProducts='<div class="mycookie"><h4>Recently Viewed Products</h4>';
                recentProducts += '<a href="' + myArray[1] + '">Link1</a>';
                recentProducts += '<a href="' + myArray[2] + '">Link2</a>';
                recentProducts += '<a href="' + myArray[3] + '">Link3</a>';
                $.cookie('mycookie', '»'+myArray[1]+'»'+myArray[2]+'»'+myArray[3]+'»'+currentUrl, { path: '/', expires: cookieExp });
            }
        }
        recentProducts='</div>';

ご覧のとおり、1 つの項目には 1 つの if/else が必要であり、2 つの項目には if、else if、および else が必要です。3 つの項目には、if、else if、else if、else が必要です。等々。

このスクリプトは現在の URL を調べて配列と比較します。配列内にある場合、現在の URL は表示されませんが、配列の末尾に追加されるため、次の URL に移動するときに表示する項目です。ご不明な点がございましたら、お知らせください。助けていただければ幸いです。

4

1 に答える 1