javascript 中的字符串未返回正确的反向字符串

string is not returning correct reverse string in javascript

我正在尝试使用以下函数反转字符串,但它 return 不正确的字符串。如下所示,我尝试使用 'devesh' 它给出了 'hseesh'

var reverseString = function(s) {
    let j = 0
    for(let i=s.length-1; i>=0; i--){
        s[j++] = s[i]
    }
    return s
};

console.log(reverseString(['d', 'e', 'v', 'e', 's', 'h']))
// ['h', 's', 'e', 'v', 'e', 'd']`enter code here`

这是一种更简单的方法:

var reverseString = function(s) {
  return s.reverse();
};

它不起作用,因为您正在覆盖 for 循环中的 s

相反,创建一个空的并填充它:

var reverseString = function(s) {
  let j = 0;
  let newS = [];

  for (let i = s.length - 1; i >= 0; i--) {
    newS[j++] = s[i]
  }
  return newS;
};

console.log(reverseString(['d', 'e', 'v', 'e', 's', 'h']))

您可以避免使用额外的变量 j,只需将每个字母推入结果数组,如下所示:

const reverseString = values => {  
  const result = [];
  for(let i = values.length - 1; i >= 0; i--) {
    result.push(values[i]);
  }  
  return result;
};

console.log(reverseString(['a','b','c']))