数组方法
- arr.length 返回数组的长度
- isArray()确定对象是否为数组。
添加和删除
- push() 添加到数组末尾
let arr=[1,2]
arr.push(3)//[1,2,3]
- pop() 删除数组末尾元素
let arr=[1,2,3,4,5]
arr.pop()// [1,2,3,4]
- unshift() 添加到数组首位
let arr=[2,3]
arr.unshift(1)//[1,2,3]
- shift() 删除数组首位元素
let arr=[1,2,3,4]
arr.shift()//[2,3,4]
- splice() 添加或删除数组
let arr=[1,2,3,4,5]
arr.splice(2,1)
arr.splice(2,0,1)
arr.splice(1,3,6)
- copyWithin() 将数组元素复制到数组中的另一个位置,覆盖现有值。
var fruits = ["张三", "李四", "王五", "赵六"];
fruits.copyWithin(2, 0);["张三", "李四","张三", "李四"]
输出为字符串
- toString() 方法 将数组转换为字符串,并返回结果
let arr=['hello','word']
arr.toString()
- join() 方法 将数组的所有元素连接成一个字符串
let arr=['hello','word']
arr.join()
arr.join('-')
合并数组
- concat() 连接2个或更多数组,并返回结果
let arr1=['hello']
let arr2=['word']
let arr3=[1,2,3]
arr1.concat(arr2)//['hello', 'word']
arr1.concat(arr2,arr3) //['hello', 'word', 1, 2, 3]
迭代数组
- every() 检查数组中的所有元素是否通过测试
let arr=[2,3,4,6,34,56,21,33]
arr.every((item,index,arr)=>{
return item%2==0
})
- some() 检查数组中的任何元素是否通过测试。
let arr=[2,3,4,6,34,56,21,33]
arr.some((item,index,arr)=>{
return item%2==0
})
- filter() 使用数组中通过测试的每个元素创建新数组 过滤数组
let arr=[2,3,4,6,34,56,21,33]
arr.filter((item,index,arr)=>{
return item%2==0
})
- includes() 方法确定数组是否包含指定的元素 区分大小写
let arr=['张三','李四','王五','赵六']
arr.includes("张三") //true
- findIndex() 方法对数组中存在的每个元素执行一次函数:如果找到函数返回 true 值的数组元素,则 findIndex() 返回该数组元素的索引(并且不检查剩余值)没有返回 -1
let arr=[1,2,3,4,5,6,7,8,9]
arr.findIndex((item,index,arr)=>{
return item>=5
})
- find() 方法对数组中存在的每个元素执行一次函数:如果找到函数返回 true 值的数组元素,则 find() 返回该数组元素的值(并且不检查剩余值)没有返回 undefined
let arr=[1,2,3,4,5,6,7,8,9]
arr.find((item,index,arr)=>{
return item>5
})
- forEach() 方法为每个数组元素调用函数 ,没有返回值 遍历数组
let arr=[2,3,4,6,34,56,21,33]
arr.forEach((item,index,arr)=>{
if(item%2==0){
console.log(item);
}
})
- map() 使用为每个数组元素调用函数的结果创建新数组
let arr=[
{
name:'张三',
age:14
},
{
name:'李四',
age:16
},
{
name:'王五',
age:19
},
{
name:'赵六',
age:18
},
]
arr.map((item,index,arr)=>{
return item.name
})
arr.map((item,index,arr)=>{
return item.age
})
- reduce() 方法为数组的每个值(从左到右)执行提供的函数。
let arr=[1,2,3,4,5,6,7]
arr.reduce((total,item,index,arr)=>{
return total+item
})
、、从左往右相减
arr.reduce((total,item,index,arr)=>{
return total-item
})
- reduceRight() 方法为数组的每个值(从右到左)执行提供的函数。
let arr=[1,2,3,4,5,6,7]
arr.reduce((total,item,index,arr)=>{
return total+item
})
arr.reduceRight((total,item,index,arr)=>{
return total-item
})
- keys() 方法返回带有数组键的 Array Iterator对象,不改变原数组
let arr=['张三','李四','王五','赵六']
for(i of arr.keys()){
console.log(i);
}
- entries() 方法返回带有键/值对的 Array Iterator对象,不改变原数组
let arr=['张三','李四','王五','赵六']
for(i of arr.entries()){
console.log(i);
}//[0, '张三'],[1, '李四'],[2, '王五'],[3, '赵六']
- from() 方法从具有 length 属性或可迭代对象的任何对象返回 Array 对象。
let arr= Array.from("ABCDEFG");
console.log(arr);//['A', 'B', 'C', 'D', 'E', 'F', 'G']
数组排序与搜索
- reverse() 数组反序排列
let arr=[1,2,3,4,5,6,7]
arr.reverse()//[7, 6, 5, 4, 3, 2, 1]
- sort() 方法对数组的项目进行排序
let arr=['c','a','e','b','d']
//默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。
arr.sort()//['a', 'b', 'c', 'd', 'e']
arr.sort((a,b)=>a-b)//[1, 2, 3, 4, 5, 6]
arr.sort((a,b)=>b-a)//[6, 5, 4, 3, 2, 1]
let names =['Ana', 'ana', 'john', 'John'];
names.sort()//["Ana", "John", "ana", "john"]
//既然a在字母表里排第一位,为何ana却排在了John之后呢?
//这是因为JavaScript在做字符比较的时候,是根据字符对应的ASCII值来比较的。
//例如,A、J、a、j对应的ASCII值分别是65、75、 7、106。
names.sort((a, b)=>{
if (a.toLowerCase() < b.toLowerCase()){
return -1
}
if (a.toLowerCase() > b.toLowerCase()){
return 1
}
return 0;
});
- indexOf() 方法返回与参数匹配的第一个元素的索引 ,没有返回-1
let arr=[4,1,2,3,4]
arr.indexOf(4)
arr.indexOf(5)
- lastIndexOf() 方法返回 与参数匹配的最后一个元素的索引 没有返回-1
let arr=[4,1,2,3,4]
arr.lastIndexOf(4)
arr.lastIndexOf(5)
- slice() 传入索引值,将数组里对应索引范围内的元素作为新数组返回
let arr=[0,1,2,3,4,5]
arr.slice()
arr.slice(1)
arr.slice(1,4)