数组是什么?
数组是一种储存多个值的数据类型
数组是由方括号包裹的多个值。其中每个值称为数组元素。
数组是一种由简单数据类型组成的复杂数据类型
创建数组的方法有:
创建数组直接量:
const arr = ['ty','liu']
构建函数法:
var arr = new Array('ewe',164,true)
new Array()
new String()
new Boolean()
new Number()
//new : 新的(new一个对象,new一个新数组)
数组的特点:
数组的第一个元素的索引是0,数组的第二个元素的索引是1,数组的最后一个元素的索引是数组负1,所以数组是有索引的
如何访问数组元素:
使用方括号访问数组元素
如何遍历数组:
可以用for 循环来作。
for of循环
array.forEach()
array.length
定义
array.length用来检测数组的长度
语法
主人是数组
参数:
length是属性,没有参数
返回值
返回新数组长度
Array.isArray()
定义
'Array.isArray()'方法用于检测是否是数组
语法
-Array.isArray(value)
-value:是要检测的值
返回值
-true : 如果是数组,返回true
-false : 如果不是数组,返回false
示例(原则:用最简单的例子呈现知识点原理)
var str = 'hrllo wolrd'
var arr = [1,2,3]
console.log(Array.isArray(str))
console.log(Array.isArray(arr))
array.push
定义
array.push
将新元素添加到数组的末尾
语法
array.push(item1,item2,...,itemX)
item1:要添加的元素
item2:一次可以添加多个元素,多个元素之间用逗号隔开
返回值
返回新数组长度
示例
var arr = [1,2,3]
arr.push(4)//4
arr.push(4,5,6)//7
array.unshift()
定义
unshift
将新元素添加到数组的开头,并返回新的长度。
语法
array.unshift(item1, item2, ..., itemX)
参数:
item1:要添加的元素
item2:一次可以添加多个元素
返回值
表示数组的新长度。
示例
var fruits = ["Bana", "Orae", "Ale", "Mgo"]
fruits.unshift("Len","Pineae")
array.pop()
定义
array.pop
删除数组的最后一个元素,并返回该元素
语法
array.pop()
无参数
返回值
被删除的数组项
示例
var arr = [1,2,3]
var str = arr.pop()
console.log(str)
array.shift
定义
删除数组的第一个元素,并返回该元素。
语法
array.shift()
参数:
无参数
返回值
返回被删除的数组项目
示例
var arr = [1,2,3,4]
arr.shift()
array.reverse
定义
返回反转数组中元素的顺序
语法
array.reverse()
参数:
无参数
返回值
返回反转后的数组
示例
var arr =[1,2,3,4]
arr.reverse()
console.log(arr)
array.join
定义
将数组的所有元素连接成一个字符串
语法
array.join(separator)
参数:
要使用的分隔符,
如果省略,元素用逗号分隔
返回值
返回字符串值,数组值,由指定的分隔符分隔。
示例
var arr = ["dfdsf", "rtdf", "ardssa", "dfgre"];
var we = arr.join();
array.concat
定义
连接两个或多个数组,并返回已连接数组的副本。
语法
array1.concat(array2, array3, ..., arrayX)
参数:
要连接的数组
返回值
返回已连接的数组
示例
var arr = ["12", "33"];
var str = ["we", "3yu", "230"];
var ad = arr.concat(str);
array.indexOf
定义
在数组中搜索元素,从末尾开始,并返回其位置。
语法
array.lastIndexOf(item, start)
参数:
item : 要搜索的项目
start : 负值的给定的位置从末尾计数,然后搜索到开头
返回值
返回指定项目的位置,否则 -1
示例
var arr = ["dfdsf", "rtdf", "ardssa", "dfgre"];
var a = arr.lastIndexOf("ardssa");
array.splice
定义
从数组中添加/删除元素。
语法
array.splice(index, howmany, item1, ....., itemX)
参数:
index : 整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。
howmany : 要删除的项目数。如果设置为 0,则不会删除任何项目。
item1, ..., itemX : 要添加到数组中的新项目。
返回值
新数组,包含删除的项目(如果有)。
示例
var arr = ["dfdsf", "rtdf", "ardssa", "dfgre"];
arr.splice(2, 0, "Lemon", "Kiwi");
array.sort
定义
对数组的元素进行排序。
语法
array.sort(compareFunction)
参数:
compareFunction:定义替代排序顺序的函数。该函数应返回负值、零值或正值,具体取决于参数,例如:
function(a, b){return a-b}
sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。
返回值
返回项目排序
示例
var arr1 =[4,5,6,7,8,9]
arr1.sort()
console.log(arr1)
array.forEach()
定义
forEach() 方法按顺序为数组中的每个元素调用一次函数。
使用指定函数遍历数组
语法
array.forEach(function(currentValue, index, arr), thisValue)
function:第一个参数是第一个函数
当执行forEach()
返回值
undefined
示例
var arr = [1,2,3]
arr.forEach(function(item, index, arr){
console.log(item, index, arr)
//console.log(1,0,[1,2,3])
//console.log(2,1,[1,2,3])
//console.log(3,2,[1,2,3])
})
array.map()
定义
方法使用为每个数组元素调用函数的结果创建新数组
语法
array.map(function(currentValue, index, arr), thisValue)
参数:
function: 遍历数组的函数。必须。
item: 接收数组元素的形参,必须。
index: 接收数组索引的形参,可选。
arr: 接收当前数组的形参,可选。
this: 修改函数内的this指向,默认值undefined,可选。
返回值
返回数组,包含为原始数组中的每个元素调用提供的函数的结果。
示例
let fa= []
//map
fa=people.map(function(item){
return item[1] + item[0]
})
console.log(fa)
array.filter()
定义
方法创建数组,其中填充了所有通过测试的数组元素
语法
array.filter(function(currentValue, index, arr), thisValue)
返回值
返回符合条件的新数组
示例
ad = people.filter(function(item){
return item[2] > 30
})
console.log(ad)
array.every()
定义
检查数组中的所有元素是否都通过了测试(被作为函数提供)。
语法
array.every(function(currentValue, index, arr), thisValue)
返回值
如果数组中的所有元素都通过测试,则返回 true,否则返回 false.(布尔值)
参数:
currentValue:当前元素的值。
index:当前元素的数组索引。
arr:当前元素所属的数组对象
示例
var arr1 = [1,2,3]
var arr2 = arr1.every(function(item,index,arr){
return item > 1
})
console.log(arr2)// item > 0 ervery()返回fasle
array.find()
定义
返回数组中第一个通过测试的元素的值(作为函数提供)。
语法
array.find(function(currentValue, index, arr), thisValue)
返回值
数组中的任何元素通过测试,则返回数组元素值,否则返回 undefined。
参数:
currentValue:当前元素的值。
index:当前元素的数组索引。
arr:当前元素所属的数组对象
示例
var arr1 = [1,2,3,2]
var arr2 = arr1.find(function(item,index,arr){
return item === 8
})
console.log(arr2)
array.findIndex()
定义
返回数组中通过测试的第一个元素的索引(作为函数提供)。
语法
array.findIndex(function(currentValue, index, arr), thisValue)
返回值
如果数组中的任何元素通过测试,则返回数组元素索引,否则返回 -1。
参数:
currentValue:当前元素的值。
index:当前元素的数组索引。
arr:当前元素所属的数组对象
示例
var ages = [4, 12, 16, 20];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}
array.reduce()
定义
将数组缩减为单个值。
语法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
返回值
返回上次调用回调函数的累积结果。
参数:
total:initialValue,或函数先前返回的值。
currentValue:当前元素的值。
index:当前元素的数组索引。
arr:当前元素所属的数组对象
示例
var arr2 = arr1.reduce(function(sum,item,index,arr){
return sum += item
},0)
console.log(arr2)
array.some()
定义
检查数组中的任何元素是否通过测试(作为函数提供)。
语法
array.some(function(currentValue, index, arr), thisValue)
返回值
如果数组中的任何元素通过测试,则返回 true,否则返回 false。
参数:
currentValue:当前元素的值。
index:当前元素的数组索引。
arr:当前元素所属的数组对象
示例
var arr1 = [1,2,3]
var arr2 = arr1.some(function(item,index,arr){
return item > 3
})
console.log(arr2)