Open Twlig opened 2 years ago
把一个字符串分割成字符串数组。
接收两个参数:
返回:分割后的字符串数组
var str="How are you doing today?";
var n=str.split(" ",3);
//['How', 'are', 'you']
var str="How are you doing today?";
var n=str.split("o");
//['H', 'w are y', 'u d', 'ing t', 'day?']
把数组中的所有元素转换一个字符串。
接收一个参数:指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
返回字符串
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join("&");
//'Banana&Orange&Apple&Mango'
energy = fruits.join();
//'Banana,Orange,Apple,Mango'
在字符串中抽取从 start 下标开始的指定数目的字符。
接收两个参数:
返回:一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。
var str="Hello world!"
console.log(str.substr(3))
//lo world!
Array
Array数组是一组有序的数据,数组中每个槽位可以存储任意类型的数据。这意味着可以创建一个数组,它的第一个元素是字符串,第二个元素是数值,第三个是对象。ECMAScript 数组也是动态大小的,会随着数据添加而自动增长。
创建数组
Array 构造函数
数组字面量表示法
Array静态函数
Array.from()
from()用于将类数组结构转换为数组实例。
接收三个参数:
Array.of()
Array.of()可以把一组参数转换为数组。
检测数组
instanceof
Array.isArray()
迭代器方法
Array 的原型上暴露了 3 个用于检索数组内容的方法:keys()、values()和entries()。
复制和填充方法
复制和填充方法都是指定既有数组实例上的一个范围,包含开始索引,不包含结束索引。
复制方法copyWithin()
copyWithin()会按照指定范围浅复制数组中的部分内容,然后将它们插入到指定索引开始的位置。
接收三个参数:插入位置的索引,复制开始索引,复制结束索引
填充方法fill()
fill()静默忽略超出数组边界、零长度及方向相反的索引范围.
栈方法
栈是一种后进先出(LIFO,Last-In-First-Out)的结构,也就是最近添加的项先被删除。数据项的插入(称为推入,push)和删除(称为弹出,pop)只在栈顶。
push()
接收任意数量的参数,并将它们添加到数组末尾,返回数组的最新长度。
pop()
删除数组的最后一项,同时减少数组的 length 值,返回被删除的项。
队列方法
队列以先进先出(FIFO,First-In-First-Out)形式限制访问。队列在列表末尾添加数据,但从列表开头获取数据。push模拟在队尾进,shift模拟在头部出。
shift()
它会删除数组的第一项并返回它,然后数组长度减 1。
unshift()
unshift()执行跟 shift()相反的操作:在数组开头添加任意多个值,然后返回新的数组长度。
排序方法
reverse()
reverse()方法就是将数组元素反向排列
sort()
默认情况下,sort()会按照升序重新排列数组元素,即最小的值在前面,最大的值在后面。
一开始数组中数值的顺序是正确的,但调用 sort()会按照这些数值的字符串形式重新排序。因此,即使 5 小于 10,但字符串"10"在字符串"5"的前头,所以 10 还是会排到 5 前面。很明显,这在多数情况下都不是最合适的。为此,sort()方法可以接收一个比较函数,用于判断哪个值应该排在前面。
比较函数接收两个参数,如果第一个参数应该排在第二个参数前面,就返回负值;如果两个参数相
等,就返回 0;如果第一个参数应该排在第二个参数后面,就返回正值。 (可以记成-1不交换,1交换)
操作方法
concat()
在现有数组全部元素基础上创建一个新数组。(不影响原数组)
slice()
用于创建一个包含原有数组中一个或多个元素的新数组。(不影响原数组)
接收:一个或两个参数
返回:元素的开始索引到结束索引。
splice()
在数组中间插入元素。三种用法:
搜索和位置方法
有按严格相等搜索和按断言函数搜索两种。
严格相等
三个方法:indexOf()、lastIndexOf()和 includes()。
方法都接收两个参数:要查找的元素和一个可选的起始搜索位置。
indexOf()和 includes()方法从前向后搜索,而 lastIndexOf()从后开始向前搜索。
使用全等(===)比较
断言函数
断言函数接收 3 个参数:元素、索引和数组本身。
find()返回第一个匹配的元素,findIndex()返回第一个匹配元素的索引。
迭代方法
every():对数组每一项都运行传入的函数,如果对每一项函数都返回 true,则这个方法返回 true。
some():对数组每一项都运行传入的函数,如果有一项函数返回 true,则这个方法返回 true。
filter():对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回。
map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
forEach():对数组每一项都运行传入的函数,没有返回值。
这些方法都不改变调用它们的数组。
归并方法
reduce()和 reduceRight()。这两个方法都会迭代数组的所有项,并在此基础上构建一个最终返回值。reduce()方法从数组第一项开始遍历到最后一项。而 reduceRight()从最后一项开始遍历至第一项。
第一次执行归并函数时,prev 是 1,cur 是 2。第二次执行时,prev 是 3(1 + 2),cur 是 3(数组第三项)。如此递进,直到把所有项都遍历一次,最后返回归并结果。