javaScript Array对象
js Array知识图
Array 对象
Array 对象用于在变量中存储多个值:
let cars = ["Saab", "Volvo", "BMW"];
第一个数组元素的索引值为 0,第二个索引值为 1,以此类推。
Array对象方法
方法 | 描述 | 语法 |
---|---|---|
concat() | 连接两个或更多的数组,并返回结果。 | array1.concat(array2,array3,…,arrayX) |
every() | 检测数组元素的每个元素是否都符合条件。 | array.every(function(currentValue,index,arr), thisValue) |
filter() | 检测数组元素,并返回符合条件所有元素的数组。 | array.filter(function(currentValue,index,arr), thisValue) |
indexOf() | 搜索数组中的元素,并返回它所在的位置。 | array.indexOf(item,start) |
join() | 把数组的所有元素放入一个字符串。 | array.join(separator) |
lastIndexOf() | 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 | array.lastIndexOf(item,start) |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 | array.map(function(currentValue,index,arr), thisValue) |
pop() | 删除数组的最后一个元素并返回删除的元素。 | array.pop() |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 | array.push(item1, item2, …, itemX) |
reverse() | 反转数组的元素顺序。 | array.reverse() |
shift() | 删除数组的第一个元素。 | array.shift() |
slice() | 选取数组的的一部分,并返回一个新数组。 | array.slice(start, end) |
some() | 检测数组元素中是否有元素符合指定条件。 | array.some(function(currentValue,index,arr),thisValue) |
sort() | 对数组的元素进行排序。 | array.sort(sortfunction) |
splice() | 从数组中添加或删除元素。 | array.splice(index,howmany,item1,…,itemX) |
toString() | 把数组转换为字符串,并返回结果。 | array.toString() |
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 | array.unshift(item1,item2, …, itemX) |
valueOf() | 返回数组对象的原始值。 | array.valueOf() |
示例代码
concat() 连接两个或更多的数组,并返回结果。
let arr1=[1,2,3,4];
let arr2=['a','b','c'];
let contactArr=arr1.concat(arr2);
console.log(contactArr) //[ 1, 2, 3, 4,'a', 'b', 'c']
注:该方法不会改变原数组,只会创建一个副本
every() 检测数组元素的每个元素是否都符合条件。
//方法一 :
function checkAge(age) {
return age >= 18
}
let arr3 = [1, 21, 23, 1, 15]
console.log(arr3.every(checkAge)) //false
//方法二
let arr4 = [34, 21, 23, 45, 65]
console.log(arr4.every((num) => {
return num > 18
})) //true
every() 用来检查数组中的每一项是否都满足条件,条件由函数提供。
- 如果有一项不满足就返回false,且剩余的元素不进行检查;
- 有且只有当数组中的所有元素都满足条件才会返回true
【注】:every()
不会改变原数组;也不会检测空数组
参数说明:
参数 | 描述 |
---|---|
function(currentValue,index,arr) | 必填,函数数组中的每个元素都会执行该函数,其中currentValue为必填,当前数组元素;index,当前元素的索引;arr,可选 |
thisValue | 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined” |
返回值:布尔值。如果所有元素都通过检测返回 true,否则返回 false。
filter() 检测数组元素,并返回符合条件所有元素的数组。
let arr4 = [34, 21, 23, 45, 65]
let filterArr= arr4.filter((item) => {
return item >= 18;
})
console.log(filterArr) //[ 34, 21, 23, 45, 65 ]
filter()
方法创建一个新的数组,新数组的元素是通过检查指定数组中符合条件的所有元素
【注】:filter()
不会改变原数组;也不会检测空数组
indexOf() 搜索数组中的元素,并返回它所在的位置。
let arr4 = [34, 21, 23, 45, 65]
let key=arr4.indexOf(21,0)
console.log(key)
indexOf()
方法可返回某个指定的字符串值在数组中首次出现的位置。
返回值:如果找到返回对应的下标值,未找到则返回-1;
join() 把数组的所有元素放入一个字符串。
let str1=arr4.join(',');
console.log(str1) //34,21,23,45,65
join()
将数组的元素通过指定的分隔符放入到字符串中
【注】:join()
不会改变原数组
lastIndexOf() 搜索数组中的元素,并返回它所在的位置。
let arr4 = [34, 21, 23, 45, 65]
let key=arr4.lastIndexOf(21,0)
console.log(key)
lastIndexOf()
方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
返回值:如果找到返回对应的下标值,未找到则返回-1;
map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
arr4 = [34, 21, 23, 45, 65]
let item=arr4.map(item=>{
return item>50
})
console.log(item) //[ false, false, false, false, true ]
map()
方法返回一个新数组,数组中的元素为原数组处理的结果。
map()
方法按照原始数组元素顺序依次进行处理;
【注】:map()
不会改变原数组;也不会检测空数组。
pop() 删除数组的最后一个元素并返回删除的元素。
arr4 = [34, 21, 23, 45, 65]
let arrVal=arr4.pop()
console.log(arrVal) //65
console.log(arr4) //[ 34, 21, 23, 45 ]
pop()
删除数组中的最后一个元素
【注】:pop()
改变原数组;也不会检测空数组。
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
arr4=[]
let addNum=arr4.push(2,3,4)
console.log(addNum) //3
console.log(arr4) //[ 2, 3, 4 ]
push()
方法向数组末尾添加一个或者多个元素,返回值为添加后的长度
【注】:pop()
改变原数组
reverse() 反转数组的元素顺序。
arr4 = [34, 21, 23, 45, 65]
let arr=arr4.reverse()
console.log(arr) //[ 65, 45, 23, 21, 34 ]
console.log(arr4) //[ 65, 45, 23, 21, 34 ]
reverse()
方法反转数组的元素顺序
【注】:reverse()
改变原数组
shift() 删除数组的第一个元素。
arr4 = [34, 21, 23, 45, 65]
let firstVal=arr4.shift()
console.log(firstVal) //34
console.log(arr4) //[ 21, 23, 45, 65 ]
shift()
删除数组中的第一个元素
【注】:shift()
改变原数组。
slice() 选取数组的一部分,并返回一个新数组
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);
console.log(myBest) //[ 'Lemon', 'Apple' ]
console.log(fruits) //[ 'Banana', 'Orange', 'Lemon', 'Apple', 'Mango' ]
slice()
方法选取数组的一部分,并返回新的数组
【注】:slice()
不会改变原数组,
some() 检测数组元素中是否有元素符合指定条件。
fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
let item1=fruits.some((item)=>{
return item==='Apple'
})
console.log(item1) //true
let item2=fruits.some((item)=>{
return item==='apple'
})
console.log(item2) //false
some()
方法检测数组元素中是否有符合指定条件的元素。如果数组中有一个元素满足条件则返回true,没有则返回false
【注】:some()
不会改变原数组,也不会检测空数组
sort() 对数组的元素进行排序。
arr4 = [34, 21, 23, 45, 65]
let arr7=arr4.sort()
console.log(arr7) //[ 21, 23, 45, 65 ]
console.log(arr4) //[ 21, 23, 45, 65 ]
let arr8=arr4.sort((a,b)=>{
return b-a
})
console.log(arr8) //[ 65, 45, 34, 23, 21 ]
console.log(arr4) //[ 65, 45, 34, 23, 21 ]
sort()
方法用于对数组的元素进行排序,排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序
splice() 从数组中添加或删除元素。
arr4 = [34, 21, 23, 45, 65]
let arr9=arr4.splice(1,1)
在这里插入代码片
console.log(arr9) //[ 21 ]
console.log(arr4) //[ 34, 23, 45, 65 ]
let arr0=arr4.splice(1,1,'ok')
console.log(arr0) //[ 23 ]
console.log(arr4) //[ 34, 'ok', 45, 65 ]
splice()
从数组中添加或删除元素,
【注】:some()
改变原数组
toString() 把数组转换为字符串,并返回结果。
arr4 = [34, 21, 23, 45, 65]
let strArr=arr4.toString()
console.log(arr4) //[ 34, 21, 23, 45, 65 ]
console.log(strArr) //34,21,23,45,65
unshift() 向数组的开头添加一个或更多元素,并返回新的长度
arr4 = [34, 21, 23, 45, 65]
let addLen=arr4.unshift(1);
console.log(addLen) //6
console.log(arr4) //[ 1, 34, 21, 23, 45, 65 ]
unshift()
向数组的开头添加一个或更多元素
返回添加后的数组的长度
【注】:unshift()
改变原数组