Array的常用方法
- array.concat() 连接两个数组 并返回一个新数组
const arr1=[1,2,3];
const arr2=[4,5,6];
const newArr1=arr1.concat(arr2) // [1, 2, 3, 4, 5, 6]
- array.push 往数组尾部中添加一个新的元素 会改变原数组 返回值是新数组的长度
const arr1=[1,2,3];
const arr2=[4,5,6];
const length=arr1.push('*')
console.log(arr1,length); // [1,2,3,'*'],4
- array.unshift 往数组尾部中添加一个新的元素 会改变原数组 返回值是新数组的长度
const arr1=[1,2,3];
const length=arr1.unshift('*')
console.log(arr1,length); // ['*',1,2,3],4
- array.pop 从数组尾部中删除一个元素
const arr1=[1,2,3];
const length=arr1.pop()
console.log(arr1,length); // [1,2],2
- array.shift 从数组头部中删除一个元素
const arr1 = [1,2,3];
const length = arr1.shift()
console.log(arr1,length); // [2,3],2
- array.indexOf('searchElement') 查找元素在数组的索引 未找到返回-1
const arr=['香蕉','葡萄','榴莲','橘子']
const index1 = arr.indexOf('葡萄') // 1
const index2 = arr.indexOf('西瓜') // -1
- array.find方法返回数组中满足提供的测试函数的第一个元素的值
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10); //12
- array.findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。
const array1 = [5, 12, 8, 130, 44];
const isLargeNumber = (element) => element > 13; //3
- array.join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串
const arr = ['香蕉','葡萄','榴莲','橘子'];
const newArr1 = arr.join() // 香蕉,葡萄,榴莲,橘子
const newArr2 = arr.join('-') //香蕉-葡萄-榴莲-橘子
- array.keys() 方法返回一个包含数组中每个索引键的Array Iterator对象。
const array1 = ['a', 'b', 'c'];
const iterator = array1.keys();
for (const key of iterator) {
console.log(key); // 0,1,2
}
- array.values() 方法返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值
const array1 = [{'a':1},{'b':2},{'c':3}];
const iterator = array1.values();
for (const key of iterator) {
console.log(key); // {a:1} {b:2} {c:3}
}
- array.slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝(包括 start,不包括end)。原始数组不会被改变。
const arr=['香蕉','葡萄','榴莲','橘子']
const newArr1=arr.slice(0,2) // ["香蕉", "葡萄"]
const newArr2=arr.slice(0) // ['香蕉','葡萄','榴莲','橘子']
const newArr2=arr.slice(-2,-1) // ['榴莲']
- array.fill()方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素
const arr=[1,2,3,4]
const arr2=[1,2,3,4]
const newArr=arr.fill(1,2,3)
const newArr2=arr2.fill(1,2)
console.log(arr,arr2); // [1,2,1,4] [1,2,1,1]
- array.entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
const array=['a','b','c','d']
const newArr=array.entries()
for (item of newArr){
console.log(item); // [0, "a"] [1, "b"] [2, "c"] [3, "d"]
}
- array.every(fn)方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
const array=[12,4,6,8,9,19]
const bool1=array.every(item=>item>3)
const bool2=array.every(item=>item>10)
console.log(bool1,bool2); //true false
- array.filter(fn)方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
const array1=[1,2,3,4];
const array2=[{a:1,b:2},{c:1},{d:1,a:1}]
const newArr1=array1.filter(item=>{
return item>2
})
const newArr2=array2.filter(item=>{
console.log(item.a);
return item.a===1
})
console.log(newArr1,newArr2); // newArr1 [3, 4] newArr2[{a: 1, b: 2},{d: 1, a: 1}]
- array.forEach() 方法对数组的每个元素执行一次给定的函数。
const array1=[1,2,3,4]
const arr=array1.forEach(item=>{
console.log(item);
})
18.array.map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
const array1=[1,2,3,4]
const arr=array1.map(item=>item*2) // 将原数组的每个元素乘以2
console.log(arr); //[2,4,6,8]
const arr2=array1.map(item=>item>2)
console.log(arr2); // [false,false,true,true]
- array.toString()返回一个字符串
const array1=[1,2,3,4]
const arr2=array1.toString() // arr2=1,2,3,4
- array.sort()对数组的元素进行排序,并返回数组 排序方式取决于内部实现,默认按字符串编码
const array1=[7,2,211,2,3,4]
const arr=array1.sort()
console.log(arr); // [2, 2, 211, 3, 4, 7]
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months); // ["Dec", "Feb", "Jan", "March"]
//升序
const numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers); // [1,2,3,4,5]
// 降序
const numbers2 = [4, 2, 5, 1, 3];
numbers2.sort(function(a, b) {
return b-a;
});
console.log(numbers); // [5,4,3,2,1]
- array.reverse() 翻转数组元素,并返回该数组。该方法会改变原数组。
const array = [4, 2, 5, 1, 3];
array.reverse()
console.log(array); // [3,1,5,2,4]
- array.splice()通过删除或替换现有元素或者原地添加新的元素来修改数组,此方法会改变原数组。
// splice方法的一个参数表示起始位置,第二个参数表示删除的个数(当该数为0时,表示添加),第三个参数可选表示要添加的元素 注意当第三个参数存在时,是执行先删除再添加
const array = [4, 2, 5, 1, 3];
array.splice(0,1)
console.log(array); // [2,5,1,3]
const array1=['西瓜','葡萄','香蕉','菠萝']
array1.splice(1,0,'菠萝蜜')
console.log(array1);
["西瓜", "菠萝蜜", "葡萄", "香蕉", "菠萝"]
const array2 = [4, 2, 5, 1, 3];
array.splice(0,1,'12')
console.log(array); // ['12',2,5,1,3]
23.Array.isArray() 用于确定传递的值是否是一个 Array。返回bool值
const array = [4, 2, 5, 1, 3];
const obj={a:1}
const boolen1=Array.isArray(array)
const boolen2=Array.isArray(obj)
console.log(boolen1); // true
console.log(boolen2); // false
- array.some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。返回bool类型的值。
const array = [4, 2, 5, 1, 3];
const bool=array.some(item=>item>10) // false
const bool1=array.some(item=>item>2) // true
- array.flat() 数组扁平化(方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。) 方法会移除数组中的空项
const array = [4, 2,['西瓜','葡萄',['苹果','蛇果'],'菠萝']];
const newArr=array.flat(1); //1 层
const newArr2=array.flat(2); //2层
const newArr3=array.flat(Infinity) //无穷大
console.log(newArr); //[4, 2, "西瓜", "葡萄", Array(2), "菠萝"]
console.log(newArr2); //[4, 2, "西瓜", "葡萄", "苹果", "蛇果", "菠萝"]
console.log(newArr3); //[4, 2, "西瓜", "葡萄", "苹果", "蛇果", "菠萝"]
- array.reduce() 方法对数组中的每个元素执行一个提供的reducer函数(升序执行),将其结果汇总为单个返回值。
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(reducer) //10
静待后续......