文章目录
- 一、js常用数组api
- 1.unshift
- 2.push
- 3.shift
- 4.pop
- 5.concat
- 6.splice
- 7.slice
- 8.join
- 9.every
- 10.some
- 11.fill
- 12.map
- 13.reduce
- 14.参考链接
- 待补充。。
一、js常用数组api
1.unshift
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
var arr1 = [1,2,3,4,5]
var arr2 = ['wo','de','ming','zi']
var length1 = arr1.unshift(...arr2)
console.log(length1, arr1) // 9, ['wo', 'de', 'ming', 'zi', 1, 2, 3, 4, 5]
2.push
unshift() 方法可向数组的结尾添加一个或更多元素,并返回新的长度。
var arr3 = [1,2,3,4,5]
var arr4 = ['wo','de','ming','zi']
var length2 = arr3.push(...arr4)
console.log(length2, arr3) // 9, [1, 2, 3, 4, 5, 'wo', 'de', 'ming', 'zi']
3.shift
方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
var arr3_1 = [1,2,3,4,5]
var str3_1 = arr3_1.shift()
console.log(str3_1, arr3_1) // 1, [2, 3, 4, 5]
4.pop
方法用于把数组的最后一个元素从其中删除,并返回最后一个元素的值。
var arr4_1 = [1,2,3,4,5]
var str4_1 = arr4_1.pop()
console.log(str4_1, arr4_1) // 5, [1, 2, 3, 4]
5.concat
concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var arr5_1 = ["Cecilie", "Lone"];
var arr5_2 = ["Emil", "Tobias", "Linus"];
var arr5_3 = ["Robin"];
var arr5_4 = arr5_1.concat(arr5_2,arr5_3);
console.log(arr5_4, arr5_1) // ['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin'] , ['Cecilie', 'Lone']
// 还有一种方式
var arr5_5 = [...arr5_1, ...arr5_2, ...arr5_3]
console.log(arr5_5) // ['Cecilie', 'Lone', 'Emil', 'Tobias', 'Linus', 'Robin'
6.splice
splice(start,deleteCount,item)主要用来对js中的数组进行操作,包括删除,添加,替换等,第一个参数一般必须填,返回值为被替换的数。
start:开始的位置,为负数的时候从结尾往后面数个数。
deleteCount:可选参数,要删除或者替换的个数,如果未规定此参数,则删除从 start 开始到原数组结尾的所有元素。
item:替换的项。
// splice(start,deleteCount,item)
var arr6_1=[1,2,3,4];
var arr6_2=arr6_1.splice(0,1,3);
console.log(arr6_2, arr6_1) // [1] , [3, 2, 3, 4]
var arr6_3=[1,2,3,4,5];
var arr6_4=arr6_3.splice(-3,2,88);
console.log(arr6_4, arr6_3) // [3,4] , [1,2,88,5]
var arr6_3=[1,2,3,4,5];
var arr6_4=arr6_3.splice(-3,2,88);
console.log(arr6_4, arr6_3) // [3,4] , [1,2,88,5]
var arr6_5=[1,2,3,4,5];
var arr6_6=arr6_5.splice(3,2);
console.log(arr6_6, arr6_5) // [4,5] , [1,2,3]
var arr6_7=[1,2,3,4,5];
var arr6_8=arr6_7.splice(2);
console.log(arr6_8, arr6_7) // [3,4,5],[1,2]
7.slice
slice(start, end)方法可从已有的数组中返回选定的元素,slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
strat:可选。规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
end:可选。可选。规定从何处结束选取。slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
var arr7_1=[1,2,3,4,5];
var arr7_2=arr7_1.slice(2);
console.log(arr7_2, arr7_1) // [3,4,5],[1,2,3,4,5]
var arr7_3=[1,2,3,4,5];
var arr7_4=arr7_3.slice(-2, -1);
console.log(arr7_4, arr7_3) // [4],[1,2,3,4,5]
var arr7_5=[1,2,3,4,5];
var arr7_6=arr7_5.slice(); // 不传参相当于浅复制
console.log(arr7_6, arr7_5) // [3,4,5],[1,2]
8.join
用于把数组中的所有元素转换一个字符串。
var arr8_1=[1,2,3,4,5];
var arr8_2=arr8_1.join('-');
console.log(arr8_2) // 1-2-3-4-5
9.every
方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
/如果所有元素都满足条件,则返回 true。。
var arr9_1=[18,22,33,45,52];
var boole_9_1=arr9_1.every(age=>age>=18);
console.log(boole_9_1) // true
var arr9_2=[]; // every有一点需要注意,就是在数组是空的时候,一切情况都会返回true
var boole_9_2=arr9_2.every(age=>age>=18);
console.log(boole_9_2) // true
var arr9_3=[18,22,3,45,52];
var boole_9_3=arr9_3.every(age=>age>=18);
console.log(boole_9_3) // false
10.some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。
var arr10_1=[8,22,33,45,52];
var boole10_1=arr10_1.some(age=>age>=18);
console.log(boole10_1) // true
11.fill
方法用于将一个固定值替换数组的元素,array.fill(value, start, end)
value 必需。填充的值。
start 可选。开始填充位置。
end 可选。停止填充位置 (默认为 array.length)
var arr11_1 = ["Banana", "Orange", "Apple", "Mango"];
arr11_1.fill("rumenz");
console.log(arr11_1) // [rumenz,rumenz,rumenz,rumenz]
var arr11_2 = ["Banana", "Orange", "Apple", "Mango"];
arr11_2.fill("rumenz", 1, 3);
console.log(arr11_2) // [Banana,rumenz,rumenz,Mango]
12.map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原始数组元素顺序依次处理元素
var arr12_1 = [1,2,3,4,5]
var arr12_2 = arr12_1.map(item=>item*2)
console.log(arr12_2) // [2,4,6,8,10]
13.reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
// 数组去重
var arr13_1 = [1,2,3,4,5,3,3,4,6,2,8]
var arr13_2 = arr13_1.reduce((prev, cur, index, arr)=>{
if(!prev.includes(cur)) {
prev.push(cur)
}
return prev
},[])
console.log(arr13_2)
// 统计字符串数量
var arr13_3 = ['s','b','t','s','t','a','b','m','t','a','z']
var obj13_1 = arr13_3.reduce((prev, cur, index, arr)=>{
if(cur in prev) {
prev[cur] ++
} else {
prev[cur] = 1
}
return prev
},{})
console.log(obj13_1)
// 找出数组中最大值
var arr13_4 = [1,2,34,22,56,43]
var num13_1 = arr13_4.reduce((prev, cur, index, arr)=>{
if(prev<=cur) {
prev = cur
}
return prev
},0)
console.log(num13_1)
14.参考链接
待补充。。