JavaScript中数组的操作
Array
Array
JavaScript 的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
描述
数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。JavaScript 数组的长度和元素类型都是非固定的。因为数组的长度可随时改变,并且其数据在内存中也可以不连续,所以 JavaScript 数组不一定是密集型的,这取决于它的使用方式。一般来说,数组的这些特性会给使用带来方便,但如果这些特性不适用于你的特定使用场景的话,可以考虑使用类型数组 TypedArray。
常见操作
创建数组
// 创建一个空数组
let arr=[]
//创建一个附带数据的数组
let arr1=['苹果14','华为meta50','iqoo11Pro']
通过索引访问数组元素
let phone=arr1[2]
console.log(phone);//iqoo11Pro
//访问数组中最后一条最后数据
let last =arr1[arr1.length-1]
console.log(last);//iqoo11Pro
遍历数组
item:是遍历数组中的每一条数据
index:索引值
arr1.forEach(function(item,index){
console.log(item+'---'+index);
})
//苹果14---0
//华为meta50---1
//iqoo11Pro---2
添加元素到数组末尾
push:在数组末尾进行添加数据
arr1.push("小米12","小米11")
console.log(arr1);
['苹果14', '华为meta50', 'iqoo11Pro', '小米12', '小米11']
删除数组末尾的元素
pop:删除数组的最后一条数据,返回值就是删除的那个值
let delLast=arr1.pop()
console.log(delLast);//iqoo11Pro
console.log(arr1);//['苹果14', '华为meta50']
添加元素到数组头部
unshift:在数组头部位置进行添加数据,可以同时添加多个
arr1.unshift("苹果4",'苹果5')
console.log(arr1);
//['苹果4', '苹果5', '苹果14', '华为meta50''iqoo11Pro']
删除数组头部元素
shift:删除数组头部的那条数据。
这里要和unshift区分清楚,unshift是在头部添加元素
注意:返回值是删除的那条数据
let x= arr1.shift()
console.log(x);//苹果14
console.log(arr1);//['华为meta50', 'iqoo11Pro']
找出某个元素在数组中的索引
indexOf:根据元素得到所在索引
注意:若数组中存在多条相同的数据,则只会查到第一个
arr1.push('锤子手机')
let index=arr1.indexOf('锤子手机')
console.log(arr1);
//['苹果14', '华为meta50', 'iqoo11Pro', '锤子手机']
console.log(index);
//3
通过索引删除某个元素
splice:可以对数组进行删除或者添加操作;可以有三个值或两个值
splice(开始索引,删除个数,添加数据)
splice(开始索引,删除个数)
注意,若三个值时,值二若为0,则在索引出添加值三
使用splice进行删除操作
console.log(arr1);
//['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
// 从索引1位置删除一条数据
arr1.splice(1,1)
console.log(arr1);
//['锤子手机', '华为meta50', 'iqoo11Pro']
使用splice进行添加操作
console.log(arr1)
//['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
arr1.splice(1,0,'splice新增数据')
console.log(arr1);
//['锤子手机', 'splice新增数据', '苹果14', '华为meta50', 'iqoo11Pro']
复制一个数组
slice:从某个数组中返回选定的数据
值一:开始截取的索引位置
值二:结束截取的索引位置
注意:若没有值,则全部复制
let copy=arr1.slice()
console.log(copy);
// ['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
拼接两个数组
concat:把两个数组进行拼接,需要使用一个变量进行接收返回值
let con=arr.concat(arr1)
console.log(con);
// ['arr的数据', '锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
分割数组,转为字符串
join:通过指定符号或字母进行分割,得到一个字符串
let join=arr1.join(',')
console.log(join);//锤子手机,苹果14,华为meta50,iqoo11Pro
console.log(typeof join==='string');//true
数组排序
sort:可以对数组或字母进行排序
注意:若排序两位或以上的数时会出现异常
let arr=[1,3,5,7,9,2,4,6,8]
let px=arr.sort()
console.log(px);
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
数组转为字符串
注意:使用tostring后,是返回一个字符串,需要一个变量进行接收,但原数组未改变
let S=arr1.toString()
console.log(S);
//锤子手机,苹果14,华为meta50,iqoo11Pro
console.log(arr1);
//['锤子手机', '苹果14', '华为meta50', 'iqoo11Pro']
console.log(typeof S=='string');
判断一个变量是否为一个数组
Array.isArray() 用于确定传递的值是否是一个 Array。
console.log(Array.isArray(arr1));//true
反转数组
reverse:对数组进行反转
let arr=[1,2,3,4,5,6]
let rev= arr.reverse()
console.log(rev);
// [6, 5, 4, 3, 2, 1]