2016-02-18 41 views
0

我在做一個簡單的coderbyte字符串反演練習,但是我發現我很難更改字符串索引,因爲在作業左側有string.charAt()似乎會引發錯誤。這是什麼原因?什麼是更好的方式來訪問和更改字符串中的字符?爲什麼chartAt()在JavaScript中導致「賦值中無效的左側」錯誤?

function FirstReverse(str) { 
    for(var i = 0; i < Math.floor(str.length/2); i++){ 
    original = str.charAt(i); 
    str.charAt(i) = str.charAt(str.length - 1 - i); 
    str.charAt(str.length - 1 - i) = original; 
    } 
    return str;  
} 
+0

@Icepickle不工作我只是想我的控制檯上。 –

+3

字符串是不可改變的 – adeneo

+0

所以我得到了一個字符串反轉器的解決方案,但澄清,上述錯誤,因爲字符串是不可變的? 'function stringReverse(str){ var stringOut =「」; (var i = 0; i

回答

2

由於提到adeneo,字符串是不可變的。但是你可以使用一個簡單的數組來完成轉換。

我添加的結果陣列(str.split(''))轉換隻是因爲否則均衡長度字符串中間字符不會在那裏

function FirstReverse(str) { 
 
    var result = str.split(''); 
 
    for(var i = 0, len = Math.floor(str.length/2); i < len; i++){ 
 
    original = str.charAt(i); 
 
    result[i] = str.charAt(str.length - 1 - i); 
 
    result[str.length - 1 - i] = original; 
 
    } 
 
    return result.join('');  
 
} 
 

 
console.log(FirstReverse('abc'));

0

做你需要的過程之前使用''作爲參數split()字符串,然後在函數的末尾使用join()方法加入各個部分。代碼的重試看起來OK。 您也可以按照以下方法反轉字符串。 它是一種簡單的分割和結合​​方法..

function reverseString(str) { 

變種ARR = str.split( 「」);

var rev = arr.reverse(); var newarr = rev.join(「」);

return newarr; }

reverseString(「hello」);

0

檢查了這一點我已經做了簡單一點你

<html> 
<body> 
<script> 
function pal() 
{ 


var temp; 
var s="HIH"; 
var x=s.split(""); 
for(var i=0;i<s.length;i++) 
{ 
var j=s.length-i-1; 
if(j>=i) 
{ 
temp=s.charAt(i); 
s[i]=s.charAt(j); 
s[j]=temp; 
alert(s[i]+"---"+s[j]); 


} 
} 
alert(s+" Reverse is ----"+x.join("")); 

if(x.join("")==s) 
{ 
alert("Palindrome"); 


} 
else 
alert(" Not a Palindrome"); 




} 
</script> 
<input type="button" onclick="pal();">Check Palindrome 
</body> 
</html> 
相關問題