添加删除
//向数组末尾添加元素
array.push(...item)
//向数组开头添加元素
array.unshift(...item)
//提取数组开头元素,返回提取到的元素
array.shift()
//提取数组结尾元素,返回提取到的元素
array.pop()
//删除数组指定的值,删除位置及项数
array.splice(index,length)
//向数组指定位置插入数值,位置,0,插入值
array.splice(index,0,...rest)
//替换数组数据 位置,项数,替换值
array.splice(index,len,...rest)
//切片,从start开始,end结束(不含end),构造新数组
array.slice(start,end)
//连接数组,返回新的数组,不改变原数组。
array.concat(another array)
查询元素
//查找数组是否存在某个元素,返回第一个元素下标,没有返回-1。不能识别NaN
array.indexOf(item,arr)
//查找指定元素在数组中的最后一个位置,同上.逆向查找,感觉像python切片,用相同方式理解。
array.lastindexOf(item,fromIndex)
//查找数组是否包含某个元素,返回布尔值
可识别NaN.
array.include(item,fromIndex)
//上述两个方法中,fromIndex(可选):默认值为0,参数表示搜索的起始位置,接受负值。正值超过数组长度,数组不会被搜索,返回false。负值绝对值超过长数组度,重置从0开始搜索。
遍历数组
各方法回调函数参数:
- item(必须),数组当前元素的值
- index(可选), 当前元素的索引值
- arr(可选),数组对象本身
//找出第一个符合条件的元素,无,返回undefined
array.find(function(item,index,arr))
//找出第一个符合条件的元素的位置,无,返回-1。
array.findIndex(function(item,index,arr))
//找出符合条件的所有元素,返回新数组
array.filter(function(item,index,arr))
//按升序遍历数组,执行回调函数
array.forEach(function(item,index,arr))
//遍历数组,对每个元素进行处理,返回新的数组
array.map(function(item,index,arr))
//检测数组所有元素是否都符合判断条件
array.every(function(item,index,arr))
//检测数组中是否有满足判断条件的元素
array.some(function(item,index,arr))
//遍历键名,键值,键值对 类比python字典操作方法
array.keys()
array.values()
array.entries()
//对累加器和数组中的每一个值应用一个函数,最终合并为一个值,initialValue(可选): 指定第一次回调 的第一个参数。
array.reduce(function(total,item,index,arr),initialValue)
其他
//填充 从start到end填充item元素。
array.fill(item,start,end)
//返回所有参数组成的数组
array.of()
//将对象转换为数组
array.from(obj)
array.from(str,Set等)
扩展运算符
//剩余数组
const [a,...rest] =[...'asdf']
console.log(rest) //['s','d','f']
//数组浅拷贝
const list2=[...list]
//数组合并
const list =[...list1,...list2]
//数组去重
const list =[...new Set(array)]
学习心得
1.every/some可以用于多种条件的判断
2.filter返回的本数组的元素,map返回的是新数组的元素
3.reduce比较复杂,后续专门学习下
4.有扩展运算符,很多方法都可以不用了…