RT 我有段程式碼長這樣
var ary=p;
var t=ary.join(",")+",";
for(var j=0;j<ary.length;j++)
{
if(t.replace(ary[j]+",","").indexOf(ary[j]+",")>-1)
{
e="?cmd=remove&list_id="+admin_json[j].list_id+"&song_id="+admin_json[j].song_id;
console.log(j);
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100);
}
);
}
}
而我用console看他的j似乎是這樣的
j=0
j=2
....
現在我想把每次取得的j取出變成一個新的陣列k 這樣我e才有辦法指定要哪個j
j[0]=0
j[0]=2
function admin_call()
var k = []; //k 宣告在這裡
$.getJSON("/data/admin.json",
變成k[0,2]
k.push(j); //就可以了
undefind http://puu.sh/ANcmt/384cbdd1a0.jpg
改j的話有結果 但是會有兩次result
http://puu.sh/ANcq1/9c51a4fa2d.jpg
忘了宣告,修正一下
忘了說我j的值是會改變的 而且似乎是j不是j[0]
好了,就覺得你整個搞錯~
好啦 我更正了 那要怎把每次的j值push進k result只有一個呢
那就是k要宣告在你的函數外,沒問題就結案吧~
var ary=p;
var t=ary.join(",")+",";
var k=[];
for(var j=0;j<ary.length;j++)
{
if(t.replace(ary[j]+",","").indexOf(ary[j]+",")>-1)
{
k.push(j);
e="?cmd=remove&list_id="+admin_json[j].list_id+"&song_id="+admin_json[j].song_id;
console.log(k);
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100);
}
);
}
}
還是一樣兩個result
這整段是包在一個函數裡嗎?
是阿 完整的長這樣
function admin_call()
{
$.getJSON("/data/admin.json",
function(b)
{
var admin_json=b.admin;
var admin_length=admin_json.length;
admin_total_time=0;
admin_total_number=0;
admin_html="<table border=1 class=req_container><caption>Requested songs</caption><thead><th class=s>Index</th><th class=s>Priority</th><th>Action</th><th>Artist</th><th>Title</th><th>Time</th><th>Ip list</th></thead>";
for(q=0;q<admin_length-1;q++)
{
var n=[];
for(var i=0;i<admin_length-1;i++)
{
n.push(admin_json[i].artist);
}
var p=[];
for(var j=0;j<admin_length-1;j++)
{
p.push(admin_json[j].title.substr(0,2));
}
var ary=n;
var s=ary.join(",")+",";
for(var i=0;i<ary.length;i++)
{
if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1)
{
if(s.split(ary[i]).length-1>3)
{
e="?cmd=remove&list_id="+admin_json[i].list_id+"&song_id="+admin_json[i].song_id;
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100);
}
);
}
}
}
var ary=p;
var t=ary.join(",")+",";
var k=[];
for(var j=0;j<ary.length;j++)
{
if(t.replace(ary[j]+",","").indexOf(ary[j]+",")>-1)
{
k.push(j);
e="?cmd=remove&list_id="+admin_json[j].list_id+"&song_id="+admin_json[j].song_id;
console.log(k);
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100);
}
);
}
}
admin_html+="<tr><td>"+admin_json[q].index+"</td><td>"+admin_json[q].priority+"</td>";
admin_html+='<td><a href="javascript:void(0)" ';
admin_html+='onclick="request('+admin_json[q].list_id+","+admin_json[q].song_id+");return false;\">Remove</a></td>";
admin_html+="<td>"+admin_json[q].artist+"</td><td>"+admin_json[q].title+"</td><td>"+admin_json[q].length+"</td><td>"+admin_json[q].ip_list+"</td></tr>";
}
admin_html+="</table>";
$("#admin_list").html(admin_html);
}
)
}
可以了吧?
再看一下,麻煩要改先重構你的code吧~ 整個亂~
對了大大你有line嗎 上限差不多快到了 改用那個聊吧
對啊...他的Code....
沒空聊,可以的話就結案,不行就之後再問,總之就是那樣,至於k要放哪,你就自己試吧,來結案了~
另外,問問題的時候,建議同時說明一下你想做什麼。你把程式碼貼出來時,會引導大家跟著你的思路走,但是這不一定能解決你的問題(就是做出你想做的結果)。很多問題的解法很多,但是需要知道你的問題是什麼。
你是想在取回的資料中,artist或title有重複時,做一些處理嗎?
感謝各位的協助 昨天在詢問另一個有在開台的後已經解決了 功能也出來了 程式碼如下
function admin_call()
{
$.getJSON("/data/admin.json",
function(b)
{
var admin_json=b.admin;
var admin_length=admin_json.length;
var n=1;
var count=0;
var oartist,otitle,nartist,ntitle,de,count;
admin_html="<table border=1 class=req_container><caption>Requested songs</caption><thead><th class=s>Index</th><th class=s>Priority</th><th>Action</th><th>Artist</th><th>Title</th><th>Time</th><th>Ip list</th></thead>";
for(q=0;q<admin_length-1;q++)
{
oartist=admin_json[q].artist;
otitle=admin_json[q].title.substr(0,2);
for(i=n;i<admin_length-1;i++)
{
nartist=admin_json[i].artist;
ntitle=admin_json[i].title.substr(0,2);
if(otitle==ntitle)
{
de=1;
}
else if(oartist==nartist)
{
count++;
if(count>4)
{
de=1;
}
}
if(de==1)
{
e="?cmd=remove&list_id="+admin_json[i].list_id+"&song_id="+admin_json[i].song_id;
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100);
}
);
return false
}
}
n++;
admin_html+="<tr><td>"+admin_json[q].index+"</td><td>"+admin_json[q].priority+"</td>";
admin_html+='<td><a href="javascript:void(0)" ';
admin_html+='onclick="request('+admin_json[q].list_id+","+admin_json[q].song_id+");return false;\">Remove</a></td>";
admin_html+="<td>"+admin_json[q].artist+"</td><td>"+admin_json[q].title+"</td><td>"+admin_json[q].length+"</td><td>"+admin_json[q].ip_list+"</td></tr>";
}
admin_html+="</table>";
$("#admin_list").html(admin_html);
}
)
}
function request(f,b,d)
{
var e="?cmd=remove&list_id="+f+"&song_id="+b;
$.getJSON("../admin/"+e,
function(g)
{
req_settimeout=setTimeout(requestlist_call(),100)
}
);
return false;
}
$(document).ready(
function()
{
admin_call();
}
);
維護這樣的code也太麻煩了,有空要改版一下~