-2
我想用另一個字符串替換數組中的字符串。
在我的例子cat
應mouse
更換:替換數組中的字符串
var arr1 = [ "dog", "cat"];
for(i=0; i<arr1.length; i++){
arr1[i].replace("cat", "mouse");
}
不幸的是,數組保持不變。
錯誤在哪裏?
我想用另一個字符串替換數組中的字符串。
在我的例子cat
應mouse
更換:替換數組中的字符串
var arr1 = [ "dog", "cat"];
for(i=0; i<arr1.length; i++){
arr1[i].replace("cat", "mouse");
}
不幸的是,數組保持不變。
錯誤在哪裏?
那是因爲你需要重新分配的結果替換回元素:
var arr1 = [ "dog", "cat"];
for(i=0; i<arr1.length; i++){
arr1[i] = arr1[i].replace("cat", "mouse");
}
.replace()
返回一個新字符串。
從MDN:
的替換()方法返回與一些或通過替換替換的圖案的所有比賽的新字符串。
所以你應該做的。
arr1[i] = arr[i].replace("cat", "mouse");
字符串是不可變 – Oriol
@Oriol:嗯,你的鏈接不正確回答這個問題。國際海事組織,他應該使用拼接而不是替換,因爲它是一個數組問題而不是直接的字符串問題。 arr1.splice(arr1.indexOf('cat'),1,'mouse'); –
@JohnGreen用''mouse''替換第一個'cat''數組入口。據推測,OP希望用「鼠標」替換每個字符串數組條目的第一個「cat」子字符串。不完全一樣。 – Oriol