难度级别:初级及以上 提问概率:65%
例如有一个字符串本来是“abcde”,那么现在希望可以将其反转,最终的值是“edcba”,该如何做呢?
第一种是将字符串转为数组,利用数组的reverse方法实现元素反转,然后再将数组转为字符串,代码如下
Javascript代码:
<script>
let str = 'abcde';
let newArr = str.split('');
newArr = newArr.reverse();
let newStr = newArr.join('');
console.log(newStr);
</script>
第二种是利用字符串自身的chatAt方法,获取指定下标元素,然后将元素倒叙累加到新的字符串中,代码如下
Javascript代码:
<script>
let str = 'abcde';
let strLength = str.length;
let newStr = '';
for (let i=strLength;i>=0;i--) {
newStr += str.charAt(i);
}
console.log(newStr);
</script>
很多求职者在遇到这道题的时候,首先都会想到将字符串转换为数组,再利用数组的翻转方法实现需求。但面试中一定要注意,额外新建的数据类型越多,需要转换的步骤越多,那么这肯定就不是最优解。
刷题思考
这道题考察了数组与字符串之间的互相转换,也考察了chatAt这个不太常用的字符串内置方法。日常工作中,很多人直接使用str[i]的方式就获取到字符串元素了,所以很容易忽略掉chatAt这个内置方法。所以,在面试前对数组、字符串这两个数据类型的内置方法做一个详细的梳理是很重要的。
类似考点
对于数组和字符串这两个最常用的数据类型对象,面试官一定会反复衍生出很多类似的考点,例如请你说一下字符串中常用的方法和其含义。例如请你说一下字符串截取都有哪些方式?例如你知道str.slice(-2)会返回什么值吗?