题解 | #数组转字符串#

数组转字符串

http://www.nowcoder.com/practice/9302db679d1144ceb56db763b09dac7b

function _join(array) {
    // 方法1---------
    // return array.join('');
    
    // 方法2------------笨方法,数组大时很耗性能
    // let x = '';
    // array.forEach(ele => {
    //     x = x + ele;
    // })
    // return x;
    
    // 方法 3.1--------------replaceAll() 方法返回 一个新字符串
    // let x = array.toString();
    // x = x.replaceAll(',', ''); // 如果不是链式操作,需要重新更新x的值
    // return x;
    // 方法 3.2
    // let x = array.toString().replaceAll(',', '');
    // return x;
    
    // 方法4----------reduce()方法,用法查看MDN
    let x = '';
    return array.reduce((pre, cur) => pre + cur, x);
}
_join([1,'2',3])
全部评论
我用array.join()过不去哇
点赞 回复 分享
发布于 02-26 15:08 安徽
reduce() 方法:括号内 第一个参数是 设置一个 reducer(函数/方法,你打算执行的操作),第二个参数可选(可传可不传),作为预设的第一个运算参数。 reduce((pre, cur) => pre + cur, x) 大概就是:当预设了参数 x 时,x 作为 第一个运算参数 pre,数组第一项则是 第二个运算参数 cur,两者运算后的值作为下一轮运算的 pre 传入,而数组第二项则为 第二轮 第二次运算的 cur 参数,运算结果传入下一轮,以此类推,最后结果 return 出去。
点赞 回复 分享
发布于 2022-05-21 19:33
方法3多写了一行代码,更正如下: function _join(array) { // 方法3--------------replaceAll() 方法返回 一个新字符串 let x = array.toString(); x = x.replaceAll(',', ''); // 如果不是链式操作,需要重新更新x的值 return x; } _join([1,'2',3])
点赞 回复 分享
发布于 2022-05-21 19:21
在这里的方法4其实就是方法2,本质都是字符串拼接,在拼接次数多的的时候很消耗性能,所以不推荐(reduce本质是一个语法糖,但是比起单纯的字符串拼接,可运用的范围更广)
点赞 回复 分享
发布于 2022-05-21 19:17
方法三的replaceAll()没有参数好像不行,牛客没通过,去浏览器试的结果是'2,3,4,5,6',还带着逗号
点赞 回复 分享
发布于 2022-05-19 16:38

相关推荐

05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
评论
10
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务