我有一个数组,我们称之为 arr 并为其赋值[a,a,b,c,d]。我试图首先反转数组,然后将它们连接在一起制作一个字符串。当我执行代码时:
arr.reverse().join('');
我希望得到(减去引号)的输出:
'dcbaa'
然而,我实际得到的是:
'aabcd'
我在这里做错了吗?我只是不了解我正在编写的代码的核心功能吗?反向函数是否返回反向函数,然后一旦到达连接函数就将其抛弃?我的印象是,使用反转字符串的好方法是:
str.split('').reverse().join('');
我只是拿它的最后一部分,因为我已经有了数组。非常感谢任何帮助。
编辑背景: 我正在写一个寻找回文的功能。我接受一个传递给函数的字符串,然后在该字符串中找到最长的回文。
longestPalindrome=function(s){
var strlen = 0;
var stringArr = s.toLowerCase().split('');
var chunk = '';
if(s.length === 0){
return strlen;
}
//for loop to go through each letter
for(var i = 0; i < s.length; i++){
//for loop to grab increasing chunks of array (a, ab, abc, abcd, etc.)
for(var j = 0; j < s.length - i; j++){
//Grab piece of string and convert to array
chunk = stringArr.slice(i, (s.length - j));
//View new array
console.log(chunk);
//Reverse chunk for later comparison
var chunkReverse = chunk.reverse();
//Check to see what reverse of array would be
console.log(chunkReverse);
//Create string from chunk
chunk = chunk.join('');
//view string from former chunk array
console.log(chunk);
//Create string from reversed array
chunkReverse = chunkReverse.join('');
//View reversed string from chunk array
console.log(chunkReverse);
}
}
return strlen;
}
我从上面得到的输出给了我(原始帖子的虚拟数据):
[a,a,b,c,d]
[d,c,b,a,a]
aabcd
aabcd
我希望这有助于澄清。