Js数组对象
1.迭代方法
-
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
- forEach() 对于空数组是不会执行回调函数的。
-
实例
var arr = [4, 9, 16, 25]; arr.forEach((item, index) => { i = "下标" + index + "为:" + item; console.log(i) }); 结果:下标0为:4 下标1为:9 下标2为:16 下标3为:25
-
map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回
function myFunction() { console.log(numbers.map(Math.sqrt)); // 返回[2, 3, 4, 5] let arr = numbers.map(function(item) { if (item > 10) { return item; } }) console.log(arr); // 返回[undefined, undefined, 16, 25] }
-
filter() 会根据函数中的筛选条件将返回的结果组成一个新的数组并返回
var nages = [32, 33, 16, 40]; function checkAdults(nage) { return nage >= 18; } function myFunctions() { console.log(nages.filter(checkAdults)); // 返回[32, 33, 40] } myFunctions();
-
some()和every()
var ages = [3, 10, 18, 20]; function checkAdult(age) { return age >= 18; } function myFunction() { console.log(ages.some(checkAdult)); // 返回true -如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测 console.log(ages.every(checkAdult)); // 返回false -如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。 } myFunction()
2.排序
-
sort() 对数组的元素进行排序
let arr = [1, 2, 5, 4, 5, 6] arr.sort((a, b) => a - b) console.log(arr) //1,2,4,5,5,6 arr.sort((a, b) => b - a) console.log(arr) //6,5,5,4,2,1
-
set() 对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。数组去重
let arr = [1,2,5,4,5,6,1,2] let crr = [...new Set(arr)] //去重console.log(Array.from(new Set(ary))); console.log(arr,crr) //[1,2,5,4,5,6,1,2],[1,2,5,4,6]
3.查找
-
indexOf() 方法可返回数组中某个指定的元素位置。如果在数组中没找到指定元素则返回 -1。
let arr = [1,2,5,4,5,6] let result = arr.indexOf(5) //查找5的索引值 let result2 = arr.indexOf(5,2) //从索引为2的位置开始找 let result3 = arr.indexOf(5,4) //从索引为3的位置开始找 console.log(result,result2,result3) //2,2,4 var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"]; var a = fruits.lastIndexOf("Apple",4); //a 结果输出:6
-
lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。如果在数组中没找到指定元素则返回 -1。
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"]; var a = fruits.lastIndexOf("Apple"); //a 结果输出:6 var b = fruits.lastIndexOf("Apple",4); //b 结果输出:2
-
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, 3].includes(3, 3); // false [1, 2, 3].includes(3, -1); // true [1, 2, NaN].includes(NaN); // true
4.添加
- push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
-
新元素将添加在数组的末尾。
-
此方法改变数组的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi") //输出结果:Banana,Orange,Apple,Mango,Kiwi let result = fruits.push("asa") // 尾部插入元素,返回长度 console.log(fruits,result) //["Banana", "Orange", "Apple", "Mango", "Kiwi", "asa"],6 返回长度
-
- unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
-
此方法改变数组的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon","Pineapple"); let result = fruits.unshift("asa") // 头部插入元素,返回长度 console.log(fruits,result) //["asa", "Lemon", "Pineapple", "Banana", "Orange", "Apple", "Mango"],7 返回长度
-
- splice() 方法用于添加或删除数组中的元素。
-
此方法会改变原始数组。
-
添加
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2,0,"Lemon","Kiwi"); //输出结果:Banana,Orange,Lemon,Kiwi,Apple,Mango
-
删除
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2,2); //输出结果:Banana,Orange
-
5.移除
-
pop() 方法用于删除数组的最后一个元素并返回删除的元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.pop(); // Banana,Orange,Apple
-
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.shift() // Orange,Apple,Mango
-
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"]; var citrus = fruits.slice(1,3); // Orange,Lemon // 如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 var myBest = fruits.slice(-3,-1); // Lemon,Apple
6.拼接
-
join() 方法用于把数组中的所有元素转换一个字符串。元素是通过指定的分隔符进行分隔的。
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var energy = fruits.join("-"); // Banana-Orange-Apple-Mango 返回一个字符串。
-
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,返回一个新的数组。
let arr = [1, 4, 3] let brr = [4, 2, 6] let result = arr.concat(brr) //将arr于brr连接 console.log(arr, brr, result) //[1,4,3],[4,2,6],[1,4,3,4,2,6]
7.累加
-
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
var numbers = [65, 44, 12, 4]; let result = numbers.reduce((total,num)=>{ return total+num // 初始项+当前项 }) console.log(result) // 125