持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
今天我们来学习下数组的join方法。
join 方法将一个数组的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个元素,那么将返回该元素而不使用分隔符。
语法
arr.join([separator])
参数
separator可选
指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串(因为你可能传的不是字符串)。如果缺省该值,数组元素用逗号(,)分隔。如果separator是空字符串 (""),则所有元素之间都没有任何字符。
返回值
一个所有数组元素连接的字符串。如果 arr.length为 0,则返回空字符串。
使用
不传参
let list = [1,2,3];
list.join();
参数为字符串
let list = [1,2,3];
list.join('+');
参数为空字符串
let list = [1,2,3];
list.join('');
参数不是字符串类型
布尔型
let list = [1,2,3];
list.join(true);
数字
let list = [1,2,3];
list.join(4);
NaN
let list = [1,2,3];
list.join(NaN);
对象
根据以上例子,可以看到如果参数不是字符串,会调用toString方法先将其转化为字符串。
手写
根据以上特性,我们不难写出以下代码
Array.prototype._join = function(...args) {
let separator;
let res = '';
if(args.length === 0){
separator = ',';
} else {
separator = args[0].toString();
}
for(let i = 0; i < this.length; i++){
res += this[i];
if(i === this.length - 1) return res;
res += separator;
}
}
以上逻辑总结一下,不传参,分隔符默认, 否则转为字符串(原本就是字符串调用toString方法仍然是字符串,为了简化代码直接统一处理了)。然后将数组中的每个元素与分隔符拼接起来(最后一个的末尾不加分隔符)。是不是异常简单~
结语
今天关于数组join的介绍就讲到这里,关注我获取更多有关数组方法的讲解,后续会持续更新。我是末世未然,一个爱折腾的新晋奶爸,祝好