JavaScript中 join()、split()、slice()函数的用法及区别
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
在刷力扣时这几个函数在字符串数组问题处理时经常会用到但总容易搞混现将它们总结下方便下次查看
一Array.prototype.join()
join()方法将一个数组或一个类数组对象的所有元素连接成一个字符串并返回这个字符串用逗号或指定的分隔符字符串分隔。如果数组只有一个元素那么将返回该元素而不使用分隔符。
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// Expected output: "Fire,Air,Water"
console.log(elements.join(''));
// Expected output: "FireAirWater"
console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"
- 函数中的参数如果省略数组元素用逗号
,
分隔。如果是空字符串""
则所有元素之间都没有任何字符 - 如果一个元素是 undefined
或 null
它将被转换为空字符串
二String.prototype.split()
split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组以一个指定的分割字串来决定每个拆分的位置。
const str = 'The quick brown fox jumps over the lazy dog.';
const words = str.split(' ');
console.log(words[3]);
// Expected output: "fox"
const chars = str.split('');
console.log(chars[8]);
// Expected output: "k"
const strCopy = str.split();
console.log(strCopy);
// Expected output: Array ["The quick brown fox jumps over the lazy dog."]
- 如果在 str 中省略分隔符则返回的数组包含一个由整个字符串组成的元素
- 如果分隔符为空字符串则将 str 原字符串中每个字符的数组形式返回
注意如果使用空字符串 (“) 作为分隔符则字符串不是在每个用户感知的字符 (图形素集群) 之间也不是在每个 Unicode 字符 (代码点) 之间而是在每个 UTF-16 代码单元之间。这会摧毁代理对。
三Array/String.prototype.slice()
slice()方法数组和字符串均有使用方法大同小异下面就以数组为例介绍
slice()方法返回一个新的数组对象这一对象是一个由 begin 和 end 决定的原数组的浅拷贝包括 begin不包括end。原始数组不会被改变。
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2));
// Expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(-2));
// Expected output: Array ["duck", "elephant"]
console.log(animals.slice(2, 4));
// Expected output: Array ["camel", "duck"]
console.log(animals.slice(2, -1));
// Expected output: Array ["camel", "duck"]
console.log(animals.slice());
// Expected output: Array ["ant", "bison", "camel", "duck", "elephant"]