js - 数组概念、方法、排序思想

Day10
1、 数组
a. 数组的操作:

  • 索引(编号,序号,从0开始)
    数组的第一个[0];
    数组的最后一个:数组[数组.length - 1];
    根据数组的长度,得到数组到length-1结束。


  • 增加数组的长度
    给你不存在的位置赋值
    arr [arr.length] = “哈哈哈”;


  • 缩短数组的长度
    \原有长度为5;
    arr.length = 3;
    更改后数组的长度为3,相应位置的数据被删除。


  • 找到对应索引的数据,赋值(覆盖)
    arr[要修改数据的索引] = “新赋值”;


  • 根据索引直接获取
    arr[指定位置的索引];
    b. 数组的方法
    方法实质上是一个函数,数组的方法指属于数组的函数
    数组的内置方法要关注的点:
    功能
    参数
    返回值
    是否修改原数组

  • push方法
    功能:最后的位置新增
    参数:要增加的数据,可以是多个
    返回值:数组增加之后的长度
    是否修改原数组:是
    var res = arr.push(“aaa”,”bbbb”);

  • unshift 方法
    功能:开始的位置新增;
    参数:增加的数据,可以是多个
    返回值:数组增加之后的长度
    是否修改原数组:是
    var res = arr.unshift(“aaa”,”bbb”);

  • pop方法
    功能:删除最后一位数据
    参数:无
    返回值:删除的数据
    是否修改原数组:是
    var res = arr.pop();

  • shift方法
    功能:删除第一位;
    参数:无;
    返回值:删除的数据;
    是否修改原数组:是
    var res = arr.shift();

  • join方法
    功能:将数组转换成字符
    参数:转成字符之后,每个数据之间的间隔符
    返回值:转换结果
    是否修改原数组:否
    var res = arr.join(-);
    var res = arr.join(“”);

  • splice(翻译:拼接)方法
    功能:删除并替换指定位置的数据
    参数:
    两个:1起始索引,2个数,不插入数据,只删除;
    两个以上:1起始索引,2个数,删除,并,后面都是要插的数据
    返回值:删除的数据
    是否修改原数组:是
    var res = arr.splice(2,1); //从第2个位置开始删除1个数据;
    var res = arr.splice(2,1,”aaa”,”bbb”,”ccc”) //从第2 个位置开始删除1个数据后,插入后面的数据
    var res = arr.splice(2,0, ”aaa”,”bbb”,”ccc”) //从第2个位置开始,删除0个数据后,插入后面的数据

  • slice(翻译:切片)方法
    功能:截取并拷贝出子数组
    参数:
    一个:表示从指定位置开始截取直到结束
    两个:表示从指定位置到结束位置的前一个
    返回值:截取并拷贝出来的新数组
    是否修改原数组:否
    var res = arr.slice(1,4);

  • concat 方法
    功能:讲数据合并到新数组并返回
    参数:任何数据,如果是数组的话,会被展开再合并进去
    返回值:合并之后的新数组
    是否修改原始数组:否
    var res = arr.concat([4,5,6]);

  • reverse 方法
    功能:翻转数据
    参数:无
    返回值:翻转之后的数组,就是修改之后的原数组
    是否修改原数组:是
    var res = arr.reverse();

  • sort方法
    功能:排序;默认排序规则是字符的比较规则(逐位比较,得到即停止),升序
    参数:函数:function(m,n){return n-m;} m-n数值升序,n-m数值降序
    返回值:排序之后的数组
    是否修改原数组:是
    var res = arr.sort(function(m,n){
    return m-n;
    })
    c. 数组的分类:数组的小分类,特点:数组内的数据类型一致

  • 数值数组
    var arr = [3,4,5,6,6,7];

  • 字符数组
    var arr = [“a”,”b”,”c”];

  • 布尔数组
    var arr = [ “true”,”false”];

  • 对象数组(JSON数组)
    var objArr = [{“name:”admin”},{ name:”root”},{ name:”andriod”}];

  • 数组数组(二维数组)
    var twoArr = [[3,5,6,7,4],[ “a”,true,“b”],[ “hello”,“world”]];

访问方式(操作方式):
JSON数组
逐层解析
var objArr = [{“name:”admin”},{ name:”root”},{ name:”andriod”}];
指定数据:
console.log(objArr[1].name) //root;
所有数据
for(var i=0; i<objArr.length; i++){
console.log(objArr[i].name);
}
二维数组
var twoArr = [[3,5,6,7,4],[ “a”,true,“b”],[ “hello”,“world”]];
指定数据:
console.log(twoArr[2][0]😉 //hello;
所有数据:
for(var i=0; i<twoArr.length; i++){
for(var j=0; j<twoArr[i].length; j++){
console.log(twoArr[i][j]);
}
}
d. 数组的排序

  • 冒泡法
  • 选择法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值