如何用箭头函数将数字数组[1,2,3]转为字符串数组['123']?
实现将数字数组转为单元素拼接字符串数组的箭头函数
需求:实现箭头函数functionOne,把输入的数字数组[1, 2, 3]转换为仅包含拼接后字符串的数组['123'],且不能使用正则表达式。
用户尝试的代码:
const functionOne = (arrayOne) => { let stepOne = arrayOne.toString(arrayOne => arrayOne.toString()); console.log(stepOne); stepOne = stepOne.split(',').join(''); console.log(stepOne); return stepOne.split(''); }; console.log(functionOne([1, 2, 3]));
问题分析
你的代码前两步逻辑是正确的:将数组转为带逗号的字符串,再去除逗号得到"123"。但最后一步调用split('')会把字符串拆成单个字符的数组(即['1','2','3']),这和目标结果['123']不符——你只需要把拼接好的整个字符串放进数组里返回即可,不需要拆分操作。
另外补充一个小问题:arrayOne.toString()不需要传入回调函数,数组的toString()方法本身就会将元素转为字符串并用逗号分隔,你传入的回调参数不会生效。
正确实现方式
方法一:简化原有逻辑
直接将拼接后的字符串用数组包裹返回:
const functionOne = (arrayOne) => { // 数组转字符串后去除逗号 const joinedStr = arrayOne.toString().split(',').join(''); // 将拼接完成的字符串放入数组返回 return [joinedStr]; }; console.log(functionOne([1, 2, 3])); // 输出: ['123']
方法二:循环拼接(适合理解基础逻辑)
如果想更直观地理解拼接过程,可以用循环遍历数组元素逐个拼接:
const functionOne = (arrayOne) => { let resultStr = ''; for (const num of arrayOne) { // 将每个数字转为字符串并累加拼接 resultStr += String(num); } // 返回包含拼接字符串的数组 return [resultStr]; }; console.log(functionOne([1, 2, 3])); // 输出: ['123']
方法三:数组join方法(最简洁)
数组的join()方法可以直接指定空字符串作为分隔符,一步完成拼接:
const functionOne = (arrayOne) => { // join('')会直接将数组元素拼接成无分隔符的字符串 return [arrayOne.join('')]; }; console.log(functionOne([1, 2, 3])); // 输出: ['123']
这个方法最简洁,且完全符合“不使用正则表达式”的要求。
内容的提问来源于stack exchange,提问作者Donut
相关产品推荐
相关产品推荐

