傻傻分不清的 slice,split 和splice
程序员文章站
2022-05-29 11:49:19
...
每次使用的时候我都要怀疑一遍自己是不是弄混淆了,就写一个笔记加深一下印象吧!
split() 把字符串分割为字符串数组
返回值:
一个字符串数组,该数组是通过 指定的形式将字符串分割成子串创建,返回的数组中不包括字符串本身。
//以空格的 分割字符串 str ,将句子分割成单词
var str = 'Hello World!';
str.split(' '); // ["Hello","World"]
str.split(/\s+/);
// 将单词切割成字母
var word ='Hello';
word.split(""); // ["H", "e", "l", "l", "o"]
//切割 url
var url = 'name=zhang&age=23&sex=1&num=130403060';
url.split('&'); // ["name=zhang", "age=23", "sex=1", "num=130403060"]
split()一般用在处理 请求的url地址,cookie等地方。在这里就需要提一下数组的 join() 方法,它的作用和 split()相反,是将数组元素通过某个符号连接成字符串。
slice() 从数组中选取自定的元素,返回一个新的数组,不会修改数组本身;字符串也有该方法,作用相同
var arr = ['json','ajax','xml','click','addEventListener'];
arr.slice(); //不传参数,默认返回数组本身 ['json','ajax','xml','click','addEventListener']
arr.slice(1);//从第一个开始选取,返回一个新的数组,包含选取的全部元素 ['ajax','xml','click','addEventListener']
arr.slice(1, 4);//从第一个参数指定的位置开始选取,选取截止到第二个参数所指位置,不包含该参数所指位置的元素 ['ajax','xml','click']
arr.slice(-2,-1); //传入负数时,就反方向选取 ['click','addEventListener']
// 字符串也有 slice()方法,使用参数和数组差不多
var str ="Hello World!zhang";
str.slice(1); // ello World!zhang
splice 向数组中添加或者删除元素,然后返回被删除的元素数组 ,是修改数组本身的
// splice() 方法向数组中添加|从数组删除项目,然后返回被删除的项目。
var arr = ['json','ajax','xml','click','addEventListener'];
arr.splice(3); //返回被删除的元素数组 ['click','addEventListener']
arr.splice(3, 5, "error", "yes");//向数组中 3,5之间的元素被新元素替换
console.log(arr); //['json','ajax','xml','error','yes']
splice 和slice 根本的区别就是,slice不会修改数组本身,但是splice会修改数组。下一篇: selenium报错