js基础知识整理之 —— 数组

最近觉得基础知识掌握的不扎实,遇到个截取替换之类的拿不准还得查查,时间长不用就忘了,找出了以前看视频教程跟着做的笔记,还可以边整理边复习复习。

一、数组

用 [ ] 包起来的一组数据就叫做数组

他有索引 length 是自带属性(所说的遍历循环,就是利用for循环,实现数组的遍历)

数组公有的方法 (14个)

我们任何一个数组都可以调用,存在Array类原型prototype上的共有方法,因为每一个数组都是Array数组类的一个实例;

1、数组的 “增删改查” 原数组都改变
1)push 返回值是新增一项后数组的长度

var ary=[1,2,3,4,5];
var res=ary.push(4,5,6,8);
console.log(ary,res);

在这里插入图片描述
小技巧

ary[ary.length]="10";
console.log(ary);

在这里插入图片描述
通过ary.length索引实现给数组新加一项

2)unshifit 返回值是新增一项后数组的长度
向数组的开头增加项

var ary=[1,2,3,4,5];
var res=ary.unshift(0);
console.log(ary,res);

在这里插入图片描述
3)pop
删除末尾项 返回值是删除项
小技巧:利用length属性实现删除数组末尾项 ary.length-=1; ary.length–; 两者作用相同

4)shift
删除数组开头项 返回值是删除项
var ary=[1,2,3,4,5];
var res=ary.shift();
console.log(ary,res);

5)splice 返回一个裁剪项组成新的数组
对数组进行裁剪
语法:ary.splice(裁剪处索引,裁剪多少项,裁剪项用什么替代)

var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var res = ary.splice(3, 2, 0);
console.log(ary, res);

在这里插入图片描述

var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var res = ary.splice(3);//从索引3开始删除后面的所有项
console.log(ary, res);

在这里插入图片描述

删除末尾项 ary.splice(ary.length-1,1); ary.splice(ary.length-1);

末尾添加 var res=ary.splice(ary.length,0,"a");
删除0项 添加“a” 返回空数组 因为没有删掉东西

开头增加 var res=ary.splice(0,0,"开头项")

中间项的替换和添加
替换 ary.splice(0,1,"a"); 删除替换1项
添加 ary.splice(3,2,"c","d"); 删除替换多项 添加 “c” “d”

增加是向当前裁剪的索引前边进行增加的
var ary = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var
res=ary.splice(1,0,"我","是","二");
console.log(ary);

在这里插入图片描述

ary.splice(0) 克隆数组
ary.splice() 什么都不传 创建一个空数组,返回一个数组实例

6)slice(n,m) 查找索引n开始到索引m项之前
语法:ary.slice(开始处的索引,结束处的索引但是不包含当前结束处索引项)
在slice查找中,原有数组不发生改变,slice函数的返回值是由查找到的每一项组成的新数组;

只传一个参数
ary.slice(0) 相当于将数组复制一份 ary.slice(0,ary.length) 克隆数组
ary.slice(1) 返回的数组 相当于删除开头项
ary.slice(0,ary.length-1) 返回的数组 相当于删除最后一项

(从索引0开始 到最后一个 因为不包含m 长度比索引大1 所以最后一位会留下 删除最后一项)

从第n项,索引对应(n-1),查找到第m项(m-1),要包含m项,索引对应(m)

ary.splice() 什么都不传 和concat一样 相当于克隆数组

7)concat 数组合并
ary.concat() 我们可以传一项,或多项内容,内容的数据类型可以是任意的,如果是数组的话,就相当于两个数组合并,如果不是数组的话,相当于在原数组末尾增加

原数组不变 返回一个合并后的新数组

ary.concat("e",1,2,3) 如果实参不是数组,就是向末尾追加

ary.concat() 什么都不传,相当于将原有数组克隆

ary.concat("e",1,2,3,{name:"猴七"}) 将多项合并

在这里插入图片描述

数组的 “转换成字符串”
1)join 原有数组不变 返回结果是以指定分隔符分隔后的字符串,如果不添加指定分隔符,默认是以逗号进行分隔
在这里插入图片描述
2)toString 直接将数组转化成字符串
在这里插入图片描述

特点:调用的是对象原型上的方法(数组也是对象数据类型的 所以可以调用对象原型上的方法)

查找数组中的某一项
1)indexOf 返回值是,从索引0开始,查找项在数组中出现的第一次位置

2)lastindexOf 返回值是,从末尾索引开始,查找项在数组中出现的第一次位置

数组的 “循环遍历” (存在原型上的方法 for循环不是存在原型上的方法)
1)forEach
格式:forEach (回调函数)

var ary=["a","b","c"];
ary.forEach(function (查找到的具体每一项,每一项的索引) {
    console.log(n, m);
})

2)map 对数组中每一项进行遍历,可以每一项都做修改;然后将加工后的每一项,组合成一个新的数组返回来;我们的原数组不改变

格式:

ary.map(function (item){
           
})
var ary=[1,2,3,4];
var res=ary.map(function (item) {
    return item+"a"//有一项是字符串 就是字符串拼接
});
console.log(ary, res);// ary[1, 2, 3, 4]     res["1a", "2a", "3a", "4a"]

回调函数里面需要用return来得到返回值,对每一项做修改并且将修改后的结果返回出去

在这里插入图片描述

var ary=[1,2,3,4,5];
var res=ary.map(function (item) {
    return item*5;  需要返回值
});
console.log(ary, res);//--->(5) [1, 2, 3, 4, 5]    (5) [5, 10, 15, 20, 25]

1)sort 对数组进行排序 原有数组进行排序,我们的返回值也是排好序的数组
通过形参a b 进行比较,来实现排序:a b 代表的是我们数组的每一项,也就是拿回调函数中数组的每一项比较的返回值给sort方法,再进行实质的排序

var ary = [10, 22, 53, 68, 71, 83, 19];
var res=ary.sort(function (a,b) {  <---回调函数
    return a-b;
});
console.log(ary, res);

在这里插入图片描述

return a-b; a-b 是把每一项拿出来比较获得一个从小到大的数组
return b-a; b-a 是把每一项拿出来比较获得一个从大到小的数组

ary.sort() 直接调用,不传回调函数的情况下,是只会对10以内的数字进行从小到大的排序

根据英文26字母也可以排序

> var ary=["az","ec","d5","b6","a5"]; 
> ary.sort();
>  console.log(ary);

在这里插入图片描述
1)reverse 颠倒倒置数组

var ary=[1,2,3,4,5,6];
var res=ary.reverse();
console.log(ary, res);

在这里插入图片描述
五个人的用户信息,把当前5个人组成的数组进行排序,以年龄的大小进行排序
在这里插入图片描述
a b代表数组中的每一项 用a.age来获取对象里面的age 第一个a是12

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值