原位批改
sort
,reverse
和 splice
办法批改的是数组自身
数组办法
// 增加、删除元素arr.push(...items) // 从尾端增加元素arr.pop() // 从尾端提取元素arr.shift() // 从首端提取元素arr.unshift(...items) // 从首端增加元素/* tips: 1、push 和 unshift 办法都能够一次增加多个元素。 2、push、pop办法运行的比拟快,而shift、unshift比较慢 */// 重要罕用办法let deleteItem = arr.splice(start,deleteCount,e1,e2,...) // 从start开始,删除deleteCount个元素,增加e1,e2,...,返回被删除的项arr.slice(start,end) // 将start到end(不蕴含)之间的项复制到一个新的数组arr.concat(arg1,arg2...) // 承受任意数量的参数(数组/值),返回新数组/* tips: 1、通常只复制数组中的元素。其余类数组对象,会被作为一个整体增加 2、例外:类数组的对象具备 Symbol.isConcatSpreadable 属性 */arr.forEach(func)// 数组中搜寻arr.indexOf(item, index) // 从index开始搜寻item,否则返回-1。arr.lastIndexOf(item, index) // 同上,只是从右向左搜寻。arr.includes(item, index) // 从index开始搜寻 item,如果找到则返回truearr.find(func) // 搜寻使函数返回true的第一个项arr.findIndex(func) // 搜寻使函数返回true的第一个项的indexarr.filter(func) // 返回的是所有匹配元素组成的数组// 转换数组arr.map(func) // 对数组的每个元素都调用函数,并返回后果数组arr.sort(sortFunc) // 对数组进行 原位(in-place) 排序,更改元素的程序arr.reverse() // 反转str.split(divider) // 通过给定的分隔符divider将字符串宰割成一个数组,有可选的第二个数字参数,对数组长度的限度。如果提供了,那么额定的元素会被疏忽。arr.join(divider) // 创立一串由divider粘合的字符串// 不罕用的办法arr.reduce((prevResult,item,index,array),initial) /* tips: 1、该函数一个接一个地利用于所有数组元素,并将其后果保留到下一个调用。 2、有初始值时作为第一个prevResult,没有时数组第一个元素作为prevResult,从第2个元素开始迭代 */arr.reduceRight((prevResult,item,index,array),initial) // 同上,从右到左Array.isArray(arr) // 判断是否为数组arr.some(func) // 对数组的每个元素调用函数func。如果任何后果为true,则返回truearr.every(func) // 对数组的每个元素调用函数func。如果所有后果为true,则返回truearr.fill(value,[start,end]) // 填充数组arr.copyWithin(target,start,end) // 从start到end的元素复制到本身的target地位arr.flat([depth]) // 从多维数组创立一个新的扁平数组,depth默认为1 => arr.flatMap(func)
解构赋值
根底知识点:
- 解构不会批改数组自身
- 数组中不想要的元素也能够通过增加额定的逗号来把它抛弃
let [firstName, , title] = ["Julius", "Caesar", "Consul"]
- 能够将其与任何可迭代对象一起应用,而不仅限于数组
[a, b, c] = "abc"
- 能够在等号左侧应用任何“能够被赋值的”货色
- 能够将 .entries() 办法与解构语法一起应用,来遍历一个对象的“键—值”对
for (let [key, value] of Object.entries(user)) {}
- 用于替换变量值的典型技巧:
[guest, admin] = [admin, guest]
...rest
:rest
的值就是数组中剩下的元素组成的数组。不肯定要应用变量名rest
,也能够应用其余的变量名,只有确保它后面有三个点,并且在解构赋值的最初一个参数地位上。- 对象解构:
let {width: w = 100, height: h = 200, title} = options;
嵌套解构
let { size: { width,height}, // 对象 items: [item1, item2], // 数组 title} = options;