JS:数组、数组类型检测、数组的常用方法

什么是数组:

  • 一种数据结构,用来存储一组相关的值

数组的定义
var scoreArr=[23,34,45,56,67,67];(最常见)
var arr= new Array('A','B','C','D');
var arr=new Array(4);

访问数组项

  • 数组每一项都有下标,下标从0开始
  • 下标越界:访问数组中不存在的项会返回undefined

数组长度

  • 数组的length属性表示它的长度
  • 数组最后一项的下标是数组的长度减1

更改数组项

  • 数组并不是只读的,我们可以修改其中任何项的值
  • 如果更改数组项超过了length-1,则会创造这项

数组遍历

  • 使用循环语句
var arr=[1,23,4,5,6,7,8];
for(var i=0;i<arr.length;i++){
	console.log(arr[i]);
}

数组类型检测:

  • 数组用typeof检测结果是object(但是不能分辨返回object的是数组还是其他类型)
  • Array.isArray()
  • “鸭式变形”

数组的常用方法:

数组的头尾操作

方法功能
push()在尾部插入新项
pop()在尾部删除
unshift()在头部插入新项
shift()在头部删除

push()方法:尾部插入(有参数)

var arr=[22,33,44,55];
arr.push(66);
arr.push(77,88,99);
console.log(arr);//结果:[22,33,44,55,66,77,88,99]

pop()方法:尾部删除(没有参数)

var arr=[22,33,44,55];
var item=arr.pop();
console.log(arr);//结果是[22,33,44]
console.log(item);//结果是55

unshift()方法:头部插入

var arr=[22,33,44,55];
arr.unshift(11);
arr.unshift(0);
console.log(arr);//结果[0,11,22,33,44,55]

shift()方法:头部删除

var arr=[22,33,44,55];
var item=arr.shift();
console.log(item);//结果是22
console.log(arr);//结果是[33,44,55]

splice()方法

  • splice()方法用于替换数组中的指定项
  • 也可以在指定位置插入新项将第二个参数为0
  • 也可以删除指定项就是第三个部位不赋值
  • 会以数组的方式返回被删除的项
var arr=['A','B','C','D','E','F'];
arr.splice(3,2,'x','y','z');//3为下标,2为被替换的数据项的个数
console.log(arr);//结果是['A','B','C','x','y','z','F']

var arr2=['A','B','C','D','E','F'];
arr2.splice(3,0,'x','y','z');
console.log(arr2);//结果是['A','B','C','x','y','z','D','E','F']

var arr3=['A','B','C','D','E','F'];
arr3.splice(3,2);
console.log(arr3);//结果是['A','B','C','F']

slice()方法

  • 用于得到子数组,类似于字符串的slice方法
  • slice(a,b)截取子数组从下标为a的项开始,到下标为b的(不包括下标为b的项)结束
  • slice(a,b)不会更改元素组
  • 如果不提供第二个参数,则表示从指定项开始,提取后续所有项为子数组
  • 参数允许为负数,表示数组的倒数第几项
var arr=['A','B','C','D','E','F'];
var a=arr.slice(2,5);
console.log(a);//['A','B','F']

join()和split()方法

  • 数组的join()方法可以使数组转为字符串;字符串的split()方法可以使字符串转为数组
  • join()的参数表示以什么字符作为连接符,如果留空则默认为以逗号分隔,如同调用toString()方法
var arr=[22,33,44,55];
console.log(arr.join());//结果"22,33,44,55"
console.log(arr.join('-'));//结果"22-33-44-55"
  • split()的参数表示以什么字符拆分为字符串,一般不能留空
var str='abcd';
console.log(str.split(''));//结果["a","b","c","d"]
  • 字符串也可以使用方括号内写下标的形式,访问某个字符等价于charAt()方法
var str='我爱中国'
console.log(str[0]);//结果:"我"

concat()方法

  • concat()方法可以合并连接多个数组
  • concat()方法不会改变原数组
var arr1=[1,2,3,4];
var arr2=[5,6,7,8];
var arr3=[9,10];
var arr=arr1.concat(arr2,arr3);
console.log(arr);//[1,2,3,4,5,6,7,8,9,10];

reverse()方法:只数组可用

  • reverse()方法用来将一个数组中的全部项顺序置反
var arr=["a","b","c"];
console.log(arr.reverse());//["c","b","a"]

indexOf()和includes()方法

  • indexOf()方法功能是搜索数组中的元素,返回其下标,如果元素不存在返回-1
  • includes()方法功能是判断一个数组是否包含一个指定的值,返回布尔值
var arr=['a','b']
console.log(arr.indexOf('a'));//0,如果多个一样的字符会反应第一个元素的位置
console.log(arr.indcludes('a'));//true

var arr=[1,2];
console.log(arr.indexOf(1));//0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值