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 に移動するときに表示する項目です。ご不明な点がございましたら、お知らせください。助けていただければ幸いです。