<>创建
var a = [1,2,3]
var a = Array()
<>增
push():在末尾增加一个元素
unshift():在首部增加一个元素
ES6: fill() 填充数组
参数:
第一个元素(必须): 要填充数组的值
第二个元素(可选): 填充的开始位置,默认值为0
第三个元素(可选):填充的结束位置,默认是为this.length
<>删
pop(): 删除末尾的元素
shift():删除第一个元素
delete:删除指定元素,但是数组长度
<>一个方法实现增删
splice()
* index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
* howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目。
* item1, …, itemX: 可选。向数组添加的新项目。
*
<>查
indexOf(): 查找数组是否存在某个元素,返回下标
lastIndexOf() :查找指定元素在数组中的最后一个位置
includes() :查找数组是否包含某个元素 返回布尔
find() :用于找出第一个符合条件的数组成员
<>遍历
1.forEach():
array.forEach(function(currentValue, index, arr), thisValue)
* currentValue(必须),数组当前元素的值
* index(可选), 当前元素的索引值
* arr(可选),数组对象本身
* 无法中途退出循环,只能用return退出本次回调,进行下一次回调。
* 它总是返回 undefined值,即使你return了一个值。
* ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组。
keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。 for (let index of ['a', 'b'].
keys()) { console.log(index); } // 0 // 1 for (let elem of ['a', 'b'].values())
{ console.log(elem); } // 'a' // 'b' for (let [index, elem] of ['a', 'b'].
entries()) { console.log(index, elem); } // 0 "a" // 1 "b"
<>排序
sort()
sort要正确排序必须配合一个排序函数
function arrySort(a,b) { return a-b }
<>颠倒顺序
reserse()
返回值为undefind
<>合并
1.[…arr1, …arr2, …arr3]
2.concat()
<>数组转字符串
1.join():用指定分隔符分割连接
let a= ['hello','world']; let str=a.join(); // 'hello,world' let str2=a.join(
'+'); // 'hello+world'
2.toString() 和join相同但是不能指定分隔符
<>字符串转数组
split()方法与join()方法正好相反
它有两个参数:
* separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
* howmany
可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
如果用 “” 中间没有分号,作为分隔符,每个字符都会被分割开
<>数组拷贝
1.const a2 = […a1];
2.深拷贝
* 利用concat let arr = [1,2,3]; let arr2 = [].concat(arr);
* 利用JSON深拷贝 let obj = { a:1, b:2, c:undefind, fun:function () { console.log(
"function") } }; let obj2 = JSON.parse(JOSN.Stringify(obj)); console.log(obj2);
//object:[a:1,b:2] //用JSON拷贝会忽略undefined和function
<>数组降维
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
flat(1) 表示拉平一层,Infinity关键字可以将所有层拉平
<>filter()方法
filter方法可以实现数组的筛选
filter有三个参数:
element:数组中的元素
index:参数位置
array:数组本身
用法:
var a = [1,2,2, ,3,4,4,5]; // 只写一个参数则时element var b = a.filter(function (num) {
return num && num.trim(); //trim()会去除字符串两端的空格 }) //最后会得到去除空格的字符串 var c = a.
filter(function (num,index,array){ return array.indexOf(num) === index; }) //
这样就可以巧妙的去除重复元素,原理是indexOf会返回元素第一次出现的位置,和index进行比较就可以得出是不是重复的
<>ES6的set数组去重方法
结果是返回一个新数组
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; let set = new Set(array); console.
log(set); // => Set {1, 2, 3, 4, 5}