JS数组初学者简解(作者拔发而作)
首先我们得知道数组是什么?(是什么呢?_?)
- 数组是一种数据类型
- 数组可以储存不同数据类型的数据(啥都可以存哦!(●'◡'●))
创建数组
怎么创建数组呢?有两个方法直接量法和构造函数法
直接量法
const arr = ['zhangsan','lisi']
构造函数法
定义:构造函数就是构造对象的一种模具(函数)
构造函数的语法:任何一个构造函数在构造对象的时候必须遵循固定语法(这里必须记住哦,是固定的用法!(╯▔皿▔)╯):
new Array()
new String()
new Boolean()
new Number()
//new : 新的(new一个对象,new一个新数组)
Array()(没看错,就是这样用(●ˇ∀ˇ●),平常我们都是用直接法做的(づ ̄3 ̄)づ╭❤~)
var arr = new Array('hehe',1314,true)
数组的特点
1. 数组是有索引的
- 数组的第一个值的索引是0
- 第二个是1
- ......
- 最后一个的是数组的长度length-1
2. 数组的比较
- 简单数组类型比较值(内存中的值)
- 复杂数据类型比较址(内存中的地址)
- 简单数据类型复制是复制值
- 复杂数据类型复制是复制址
如何访问数组
使用方括号加下标访问数组元素(别用错了,是下标,别第一个就用1,第一个得用0!╰(‵□′)╯)
const arr = [1,2,3]
arr[0] //1
arr[1] //2
arr[2] //3
arr[3] //undefined
遍历数组的方法
- for 循环
var arr = ['hello',200,true,[1,2,3],null]
for(let i = 0 ; i < arr.length ; i++){
console.log(Array.isArray(arr[i]))
}
//先返回3次false 再返回1次true 最后返回一次false
- forEach
var arr = ['hello',200,true,[1,2,3],null]
arr.forEach(x=>{
console.log(Array.isArray(x))
})
//先返回3次false 再返回1次true 最后返回一次false
array.length
定义:返回数组的长度
语法:
- 主人是数组
- length是属性,没有参数
返回值:数组的长度
- 注意: length-1是任何一个数组最后一个元素
- []空数组的length是0
数组的方法
很多的欸,我肯定不会一下给你全部列出来啊,可以去W3C(https://www.w3school.com.cn/jsref/jsref_obj_array.asp)去看哦(●'◡'●)
Array.isArray
定义:Array.isArray()
方法用来检测是否是数组
语法:
Array.isArray(value)
- value:是要检测的值
返回值:
- true:如果是数组,返回true
- false:如果不是数组,返回false
实例
var arr = [[1,2],'12']
console.log(Array.isArray(arr[0])) //返回true
console.log(Array.isArray(arr[1])) //返回false
array.push()
定义:array.push()
用来在数组末尾添加元素
语法:
array.push('iteam1','iteam2','iteam3'....,'iteamx')
- 可以添加多个元素
返回值:返回新数组的长度
实例
var arr = [1,2]
arr.push(3)
console.log(arr)
结果
6
array.pop()
定义:删除数组的最后一个元素
语法:
array.pop() //无参数
返回值:返回删除元素
实例:
var arr = [1,2,3]
var str = arr.pop()
console.log(str) //返回3
array.unshift()
定义:再数组前添加元素
语法:
array.unshift('iteam1','iteam2'...,'iteamX') //可添加多个元素
返回值:返回新数组长度
实例:
var arr = [1,2]
arr.unshift(3)
console.log(arr) // 返回3
array.shift()
定义:删除数组的第一个元素
语法:
array.shift() //无参数
- 无参数
返回值:返回删除元素
实例:
var arr = [1,2,3]
var str = arr.shift()
console.log(str) //返回1
array.join()
定义:将数组通过连接符连接成一个字符串
语法:
array.join('链接符') //这个连接符啥都可以是
返回值:返回一个新的字符串
实例
var arr = ['apple','banner']
console.log(arr.join('and'))
结果
'appleandbanner'
array.reverse()
定义:反转数组中元素的顺序
语法:
array.reverse() //无参数
- 无参数
返回值:反转后的数组
实例
var arr = ['hello',200,true,[1,2,3],null]
console.log(arr.reverse())
结果
['null',[1,2,3],true,200,'hello'] //相反
array.sort()
定义:可以对数组的元素按照字母或者数字进行升序或降序重新排列,默认是升序排列
注意:
● sort默认是升序
● sort默认是按照unicode编码排序
语法:
array.sort()
参数:
function(a,b){return a - b}
sort()方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。
返回值:新数组
实例1
var arr = [2,,'a',5,0,'6',3,'7','t',1,]
console.log(arr.sort(
arr.sort((a,b)=>{
return a > b
}
))//升序排列
array.indexOf()
定义 :在数组中查询指定元素。
注意:indexOf()只会返回第一次出现的位置
语法:
array.indexOf('x')
返回值:返回它的位置,未找到返回-1
实例
var arr = [1,2,3,4]
console.log(arr.indexOf(2))
//返回值为1
console.log(arr.indexOf(9))
//返回值为-1
array.concat()
定义:用于链接两个或者多个数组
语法:
arr.concat(arr1,arr2,...,arrx)
返回值:返回一个新数组,不会修改原有数组
实例
var arr1= ["S60", "S90"];
var arr2 = ["XC40", "XC60", "XC90"];
var Volvo = arr1.concat(arr2);
array.slice()
定义:截取选取的部分数组形成一个新的数组
语法:
arr.slice(start,end)
注释:start为开始会获取,end为结束,不会获取
返回值:返回一个新的数组,不会改变原有数组
实例
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
//citrus = ['Orange','Lemon']
array.forEach()
- array:数组
- for:为了......
- Each:每一个
定义:方法按顺序为数组中的每个元素调用一次函数
语法:
array.forEach(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行forEach()方法的时候,每个数组元素都会调用一次函数参数
- 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- thisValue:设置this指向
返回值:undefined
实例:
var arr = [1,2,3]
arr.forEach(function(x,index,arr){
arr[index] = x+3
})
console.log(arr)//返回[4,5,6]
array.map()
定义:方法按顺序为数组中的每个元素调用一次函数
语法:
array.map(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
map()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值:数组
实例:
var arr = [1,2,3]
console.log(arr.map(function(x,index,arr){
return arr[index] = x+3
}))//返回[4,5,6]
array.filter()
定义:方法创建数组,且按顺序为数组中的每个元素调用一次函数
语法:
array.filter(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
filter()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值: 包含所有通过测试的数组元素的数组。如果没有元素通过测试,则返回一个空数组。
实例:
var arr = [1,2,3]
console.log(arr.filter(function(x,index,arr){
return x > 2
}))//返回[3]
array.every()
定义:检测数组中的所有元素是否通过测试
语法:
array.every(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
every()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值: true 或者 false
实例:
var arr = [1,2,3]
console.log(arr.every(function(x,index,arr){
return x > 2
}))//返回false
array.find()
定义:为数组内每个元素进行一次函数
语法:
array.find(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
find()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值:返回数组中通过第一次测试的元素,没有就返回undefined
实例:
var arr = [1,2,3]
console.log(arr.find(function(x,index,arr){
return x >= 2
}))//返回[2]
array.findIndex()
定义:按顺序为数组中的每个元素调用一次函数
语法:
array.findIndex(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
findIndex()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值: 返回数组中第一次通过测试的元素的索引。没有返回-1
实例:
var arr = [1,2,3]
console.log(arr.findIndex(function(x,index,arr){
return x > 2
}))//返回2
array.reduce()
定义:从左到右,将数组中的值进行缩减到一个值
语法:
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
- 参数function(total, currentValue, currentIndex, arr) 必须
- total 必须
- currenValue 必须
返回值:返回相减之后得到的值
实例:
var numbers = [175, 50, 25];
console.log(numbers.reduce(function(a,b){
return a - b
})
//打印 100
array.some()
定义:检测数组中的一些元素是否通过测试
语法:
array.some(function(currentValue, index, arr), thisValue)
- function:是一个函数
- 当执行
some()
方法的时候,每个数组元素都会调用一次函数参数 - 在调用函数的时候,可以传入以下参数:
- currentValue:数组中的每一个元素
- index:表示数组的索引
- arr:表示当前数组
- 当执行
- thisValue:设置this指向
返回值: true 或者 false
实例:
var arr = [1,2,3]
console.log(arr.some(function(x,index,arr){
return x > 2
}))//返回 true
共有 0 条评论