2010-07-08 53 views
3

在PHP中,它非常簡單,我假設array_shift($ string)?Shift js字符串的一個字符

如果不是這樣,我敢肯定有一些同樣簡單的解決方案:)

然而,有沒有什麼辦法,以實現在JavaScript是一回事嗎?

我的具體示例是從地址欄拉動window.location.hash以動態加載特定的AJAX頁面。如果哈希爲「2」,即http://foo.bar.com#2 ...

var hash = window.location.hash; // hash would be "#2" 

我非常喜歡坐#掉,所以一個簡單的「2」被送入功能。

謝謝!

回答

11
hash = hash.substr(1); 

這將脫掉hash的第一個字符並返回其他所有內容。這是在功能上與PHP substr功能,這可能是你應該使用以獲得在PHP中的字符串,而不是array_shift的子什麼呢其實差不多(我甚至不知道array_shift將與字符串的工作!)

+1

...和'陣列= array.slice(1)'用,如果陣列工作方式類似curiou s ... – gnarf 2010-07-08 04:07:12

+0

爲你們倆歡呼:) 據我所知,「字符串」並不完全是一種真正的類型,而是一個字符數組,因爲我們都被教導過方式(方式?)回來的時候。 理論上,它應該可以工作,因爲您可以用$ string [x]指向一個字符串中的一個字符。 – 2010-07-08 04:36:03

+1

我剛剛試過了,'array_shift'實際上*不能用於PHP中的字符串,這對我來說很有意義。 @Julian:你說的C和C++中的字符串是正確的,但在大多數其他語言(Java,C#,PHP,Python等)中,字符串是它們自己的數據類型,而這些數據類型通常與數組無關。 – 2010-07-08 04:45:59

1

由於你懷疑,Array prototype上還有一個shift()函數。

串不是Array S,他們"array-like objects"這麼叫shift()String,它必須是split()第一:

var char = str.split("").shift(); 
0

大廈Ben的關於轉換到一個數組點,因爲我們假設有隻有一個字符作爲哈希值,而且它是最後一個字符,我們真的應該只使用:

var hash = window.location.split("").pop();