2012-02-16 38 views
0

後轉儲問題:得到結果的特定模式循環數組

var arr = ['top', 'dir1', 'dir2', 'dir3' .. goes]; 

我怎樣才能得到類似下面的結果循環此陣後?

result_string => #top返回,#頂部/ DIR1,#頂部/ DIR1/DIR2,#頂部/ DIR1/DIR2/DIR3

順便說一句是有具有用於jQuery選擇斜線的問題,

謝謝。

回答

4

試試這個。

var arr = ['top','dir1','dir2','dir3']; 

for(var i=0,j=arr.length;i<j;i++) 
{ 
    arr[i] = i > 0 ? arr[i-1] + '/' + arr[i] : '#'+arr[i]; 
} 

alert(arr.join(',')) 
+0

非常感謝! – neverlate 2012-02-16 06:22:31

+0

你的第二個問題,我剛剛測試,發現jquery無法獲得元素對象,當我添加斜槓到id字符串,所以你最好保持你的html元素的id是jquery的有效字符串。 – Lake 2012-02-16 06:31:29

+0

for循環中真的需要'j'嗎?不能是'for(var i = 0; i 2012-02-16 06:37:35

0

這裏是你的代碼片段:

var arr = ['top', 'dir1', 'dir2', 'dir3']; 
var result_string = ""; 
for(i = 0; i < arr.length; i++) { 
    var requiredVal = "#"; 
    for(j = 0; j <=i; j++) { 
     requiredVal += arr[j]; 
     requiredVal += j==i ? "" : "/"; 
    } 
    result_string += requiredVal; 
    result_string += i+1 < arr.length ? ", " : ""; 
} 
alert(result_string); 

可以逃脫並使用/字符。見參考:Selectors

+0

供參考︰說使用2反斜槓來逃避斜線jQuery選擇器 – neverlate 2012-02-16 15:15:09