标签:++ 构造 nta 设置 use 问题 类型 user 尺寸
一、基本使用
1、数组的创建
(1) 通过[]
let arr1 = [1, 2, 3, 4, 5]
let arr2 = new Array(1, 2, 3, 4, 5) console.log(arr2) // [1, 2, 3, 4, 5]
let arr3 = new Array(6) // 并不是代表创建 [6], 而是创建长度为6的空数组 console.log(‘arr3--‘,arr3)
?
想要解决这个问题可以通过下面这种方式创建数组
(3) 使用Array构造函数上的静态方法 Array.of
let arr4 = Array.of(6) console.log(arr4) // [6]
也可以传入多个数字,此时和 new Array() 用法一致
let arr5 = Array.of(1, 2, 3, 4, 5) console.log(arr5) // [1, 2, 3, 4, 5]
2、数组转字符串
以下有三种方法都可以使数组变成字符串,toString()和String()会给每个字符以逗号(,)分隔,join以传入的指定分隔符分隔,不传的时候就不会有分隔符
let list1 = [‘a‘, ‘b‘, ‘c‘] let arr1 = list1.toString() let arr2 = String(list1) let arr3 = list1.join(‘‘) console.log(‘arr1--‘,arr1) // a,b,c console.log(‘arr2--‘,arr2) // a,b,c console.log(‘arr3--‘,arr3) // abc
3、字符串转数组
使用split对数组进行分割,可以看作是join的反向操作,Array的静态方法from,只要该数据类型有length属性,就可以使用 Array.from 将它转成数组
let list1 = [‘kiki‘, ‘alice‘] let list2 = list1 let list3 = [...list1] list1.push(‘windy‘) console.log(‘list1--‘, list1) // ["kiki", "alice", "windy"] console.log(‘list2--‘, list2) // ["kiki", "alice", "windy"] console.log(‘list3--‘, list3) // ["kiki", "alice"]
6、解构赋值
解构赋值在对象里更常用一些,不过数组中也是可以使用解构赋值的,解构定义的变量与数组的索引值一一对应
二、增删改查
1、增加
push 从尾部增加, 返回值为数组的长度
unshift 从头部增加, 返回值为数组的长度
2、删除
pop 从尾部删除元素, 返回值为删除的元素
shift 从头部删除元素, 返回值为删除的元素
3、修改
splice这个方法很好用,可以删除、增加、修改原数组,第一个参数传递的是需要定位到的索引值,第二个参数传递从当前索引值开始往后数几位数需要被删除,第三个参数开始传递的是需要增加的参数。
当不传第三个参数时,表示删除元素,当传递的第二个参数为0时,表示数组里一个元素都不删除,第三个往后的参数都可以添加到当前数组中
4、查找
(1) 查找该元素第一次出现的索引值位置 indexOf从头部开始计算、lastIndexOf从尾部开始计算
(2) 查找元素,传递一个查找规则的函数
find 查找数组中是否有存在符合条件的元素,存在即返回第一个符合条件的元素
findIndex 查找数组中是否有存在符合条件的元素,存在即返回第一个符合条件的元素索引值
(3) 判断元素是否存在于该数组中 includes
(4) 判断元素是否符合条件
every 用来判断是否所有元素符合条件
some 用来判断是否有一个元素符合条件
三、复杂操作
1、合并元素,可以通过 concat 或者展开语法,两种方式都不会改变原数组
2、清空数组
(1) 将数组赋值为空数组 []
这样的方式可能存在一个问题,如果将list赋值给另外的数组,直接将list赋值为空时,arr的值并不会发生改变,因为最初的时候,arr和list都指向同一个内存地址,当list重新赋值后,则指向新的内存地址,此时arr仍然指向原来的内存地址
(2) 将元素的长度设置为0
(3) 通过 splice 截取数组
(4) 不断的从头部/尾部删除元素
3、过滤
filter与find不同,find只找出第一个符合条件的元素,但是filter会筛选中符合条件的所有元素
4、排序
sort也需要传入一个函数,当传入的参数为 a - b,排序为正序
5、累加 reduce
reduce传入回调函数的参数会稍微多一点,比其他的函数要难理解一些。
第一个参数pre代表前一次执行reduce的结果,这里的操作是累加,reduce函数还可以传入第二个参数,代表初始化的值,如果没有传,pre就会取数组的第一个值。
回调函数里第二个参数current代表当前元素的值,第三个参数index代表当前元素的索引值,第四个参数代表执行reduce函数的数组
以上就是数组常用的方法,可能还有一些方法没有归纳进来,欢迎大家进行补充~
?
标签:++ 构造 nta 设置 use 问题 类型 user 尺寸
原文地址:https://www.cnblogs.com/vigourice/p/14939504.html