2016-03-12 99 views
-2

我想用另一個字符串替換數組中的字符串。
在我的例子catmouse更換:替換數組中的字符串

var arr1 = [ "dog", "cat"]; 

for(i=0; i<arr1.length; i++){ 
    arr1[i].replace("cat", "mouse"); 
} 

不幸的是,數組保持不變。

錯誤在哪裏?

+1

字符串是不可變 – Oriol

+0

@Oriol:嗯,你的鏈接不正確回答這個問題。國際海事組織,他應該使用拼接而不是替換,因爲它是一個數組問題而不是直接的字符串問題。 arr1.splice(arr1.indexOf('cat'),1,'mouse'); –

+0

@JohnGreen用''mouse''替換第一個'cat''數組入口。據推測,OP希望用「鼠標」替換每個字符串數組條目的第一個「cat」子字符串。不完全一樣。 – Oriol

回答

3

那是因爲你需要重新分配的結果替換回元素:

var arr1 = [ "dog", "cat"]; 

for(i=0; i<arr1.length; i++){ 
    arr1[i] = arr1[i].replace("cat", "mouse"); 
} 
3

.replace()返回一個新字符串。

MDN

的替換()方法返回與一些或通過替換替換的圖案的所有比賽的新字符串。

所以你應該做的。

arr1[i] = arr[i].replace("cat", "mouse");