易混-slice()、splice()、split()、substring()基础使用与区分

@TOC

易混-slice()、splice()、split()、substring()基础使用与区分

1.JavaScript 内置对象 Array中Array.prototype.slice()

slice-薄片

slice() 方法返回一个新的数组对象,这一对象是一个由 beginend 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

const cities = ['beijing','changsha', 'shenzhen', 'harbin', 'guangzhou', 'wuhan'];
console.log(cities.slice(1));
// expected output: Array ["changsha","shenzhen", "harbin", "guangzhou", "wuhan"]

console.log(cities.slice(2, 5));
// expected output: Array ["shenzhen", "harbin", "guangzhou"]

console.log(cities.slice(1, 5));
// expected output: Array ["changsha","shenzhen", "harbin", "guangzhou"]

易混-slice()、splice()、split()、substring()基础使用与区分

2.JavaScript 内置对象 Array中Array.prototype.splice()

splice-拼接

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

据MDN个人理解修改
array.splice(start[, deleteCount[, item1[, item2[, …]]]])
start​(必选)
指定修改的开始位置(从0计数)。
1.如超出数组长度,从数组末尾添加;负值则倒数插入。
2.如负数的绝对值大于数组的长度,则表示开始位置为第0位。
deleteCount (可选)-整数,表示要移除的数组元素的个数。
1.deleteCount 大于 start 之后的元素的总数,则从 start 后面的元素都将被删除(含第 start 位)。
2.deleteCount 被省略了,或者它的值大于等于array.length - start(也就是说,如果它大于或者等于start之后的所有元素的数量),那么start之后数组的所有元素都会被删除。
3.deleteCount 是 0 或者负数,则不移除元素。
item1, item2, … (可选)
待添加进数组的元素,从start 位置开始。如不指定,则 splice() 将只删除数组元素。

const cities = ['beijing','changsha', 'shenzhen', 'harbin', 'guangzhou', 'wuhan'];
cities.splice(1,0,'chengdu');
console.log(cities);
// expected output: Array ["beijing", "chengdu","changsha","shenzhen", "harbin", "guangzhou", "wuhan"]

//此处注意从是新数组开始splice
cities.splice(4, 1, 'shanghai');
console.log(cities);
// expected output: Array ["beijing", "chengdu","changsha","shenzhen", "shanghai", "guangzhou", "wuhan"]

cities.splice(0, 2);
console.log(cities);
// expected output: Array ["changsha","shenzhen", "shanghai", "guangzhou", "wuhan"]

cities.splice(2);
console.log(cities);
// expected output: Array ["changsha", "shenzhen"]

cities.splice(2, -100, "harbin");
console.log(cities);
// expected output: Array ["changsha", "shenzhen", "harbin"]

易混-slice()、splice()、split()、substring()基础使用与区分

3.JavaScript 内置对象 String中 String.prototype.split()

split-分裂

split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组以一个指定的分割字串来决定每个拆分的位置

const str = 'Hope the world epidemic will end soon.';

const words = str.split(' ');
console.log(words[0]);
console.log(words);
console.log(words[6]);
// expected output: "Hope"
// expected output: ["Hope", "the", "world", "epidemic", "will", "end", "soon."]
// expected output: "soon."    有.


const chars = str.split('');
console.log(chars[8]);
console.log(chars[5]);
console.log(chars);
// expected output: ""
// expected output: "t"
// expected output: ["H", "o", "p", "e", " ", "t", "h", "e", " ", "w", "o", "r", "l", "d", " ", "e", "p", "i", "d", "e", "m", "i", "c", " ", "w", "i", "l", "l", " ", "e", "n", "d", " ", "s", "o", "o", "n", "."]


const strCopy = str.split();
console.log(strCopy);
console.log(strCopy[0]);
// expected output: ["Hope the world epidemic will end soon."]
// expected output: Hope the world epidemic will end soon.

易混-slice()、splice()、split()、substring()基础使用与区分

4.JavaScript 内置对象 String中 String.prototype.substring()

substring-子串

substring() 方法返回一个字符串在开始索引结束索引之间的一个子集

MDN:
str.substring(indexStart[, indexEnd])
indexStart
截取第一个字符的索引,该索引位置的字符作为返回的字符串的首字母
indexEnd(可选)
一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

var anyString = "zairesinatra";

// 输出 "zaire"
console.log(anyString.substring(0,5));
console.log(anyString.substring(5,0));//如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。
console.log(anyString.substring(5,-6));//如果任一参数小于 0 或为 NaN,则被当作 0。
console.log(anyString.substring(5,NaN));//如果任一参数小于 0 或为 NaN,则被当作 0。
console.log(anyString.substring(-4,5));
console.log(anyString.substring(NaN,5));

// 输出 ""
console.log(anyString.substring(6,6));//如果 indexStart 等于 indexEnd,substring 返回一个空字符串。
String.prototype Array.prototype
split slice
substring splice

5.JavaScript 内置对象 Array中 Array.prototype.join()

join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

const elements = ['oh', 'my', 'god'];

//区分一下细节join()\join('')
console.log(elements.join());

// expected output: "oh,my,god"
console.log(elements.join(''));
// expected output: "ohmygod"


console.log(elements.join('-'));
// expected output: "oh-my-god"
上一篇:Javascript语法规范错误提示代码


下一篇:pytest封神之路第五步 参数化进阶