您的位置:首页 > Web前端 > JavaScript

js Array数组常用api

2019-07-30 16:27 120 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/YEJIA__/article/details/97761359

数组的遍历

every() 方法
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组

var age = [20,30,60,58,92]
function checkAdult(age) {
return age > 18
}
age.every(checkAdult) //true

some() 方法
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。

var age = [15,30,60,58,92]
function checkAdult(age) {
return age > 18
}
age.every(checkAdult) //false

filter() 方法
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。

var age = [16,19,30,50]
function checkAdult(age) {
return age>18
}
age.filter(checkAdult) //[19, 30, 50]

map() 方法
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。

var age = [16,19,30,50]
function checkAdult(age) {
return age>18
}
age.map(checkAdult) //[false, true, true, true]

var age = [16,19,30,50]
function checkAdult(age) {
return age+1
}
age.map(checkAdult) //[17, 20, 31, 51]

forEach() 方法
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数
注意: forEach() 对于空数组是不会执行回调函数的。

var numbers = [4, 9, 16, 25];
function myFunction(item, index){
console.info(item +':' +index)
}
numbers.forEach(myFunction) //4:0 9:1 16:2 25:3

var arr=[1,2,3];
var arrnew=[];
arr.forEach(currentValue=>{
arrnew.push(++currentValue);
});
console.log(arrnew);// [2,3,4]

数组元素的搜索

indexOf(item,start) 方法
indexOf() 方法可返回数组中某个指定的元素位置
该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
如果在数组中没找到指定元素则返回 -1

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); //2

lastIndexOf() 方法
lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找
如果要检索的元素没有出现,则该方法返回 -1。
该方法将从尾到头地检索数组中指定元素 item。开始检索的位置在数组的 start 处或数组的结尾(没有指定 start 参数时)。如果找到一个 item,则返回 item 从尾向前检索第一个次出现在数组的位置。数组的索引开始位置是从 0 开始的。
如果在数组中没找到指定元素则返回 -1

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");//2

find() 方法

find() 方法返回通过测试(函数内判断)的数组的第一个元素的值
find() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 undefined

var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
ages.find(checkAdult) //18

findIndex() 方法
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1

var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
ages.findIndex(checkAdult) //2

数组的删除添加

pop() 方法
pop() 方法用于删除数组的最后一个元素并返回删除的元素
注意:此方法改变数组的长度!

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();//Mango

shift() 方法
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift() //Banana

push() 方法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi") //Banana,Orange,Apple,Mango,Kiwi

unshift() 方法
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");//Lemon,Pineapple,Banana,Orange,Apple,Mango

slice(start, end) 方法
slice() 方法可从已有的数组中返回选定的元素
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部
分。
start规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3); //Orange,Lemon

splice(index,howmany,item) 方法
splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");//Banana,Orange,Lemon,Kiwi,Apple,Mango

数组排序

reverse() 方法
reverse() 方法用于颠倒数组中元素的顺序

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();//Mango,Apple,Orange,Banana

sort()
sort() 方法用于对数组的元素进行排序
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按 3ff7 字母升序。
注意:当数字是按字母顺序排列时"40"将排在"5"前面。
使用数字排序,你必须通过一个函数作为参数来调用。
函数指定数字是按照升序还是降序排列。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();//Apple,Banana,Mango,Orange

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});//1,5,10,25,40,100

数组转换成字符串

join() 方法
join() 方法用于把数组中的所有元素转换一个字符串。
元素是通过指定的分隔符进行分隔的。

var numbers = ["1", "2", "3", "4"];
var energy = numbers.join(); //1,2,3,4

toString() 方法
toString() 方法可把数组转换为字符串,并返回结果。
注意: 数组中的元素之间用逗号分隔。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString() //Banana,Orange,Apple,Mango;

其他

** concat() 方法**
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

var a = ["1", "2"];
var b= ["3", "4", "5"];
var c= ["6"];
a.concat(b,c) //1,2,3,4,5,6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: