第二章---二.数组

数组

数据结构   数据的结构形态  数据表现时的形态方式
var a=1;
var b=2;
var c=3;
var d=4;
var obj={a:1,b:2,c:3,d:4};
不关心key,只关心值,并且希望值可以排序,希望可以统计到数据的数量

数组 数据组合  一组数据
var arr=[1,2,3,4];

数组如何创建

字面量创建
var arr=[1,2,3,4];

实例化创建   按照实际案例的格式化创建出来
var arr=new Array();

构造函数创建
var arr=Array(); 

**对象创建,用的不多
 var arr=new Object([1,2,3]);
 
 Invalid array length  长度错误
 使用new Array或者Array  时,如果,参数只有一个, 并且是数值类型,这个数值就是
数组创建的长度,并且放入对应个数的空元素,所以这个数值必须是正整数,如果是小数
或者负数时,就会抛出错误

删除线格式 数组的下标
数组里面的所有内容称为元素,简称元
每个元素,对应的一个索引数,这个索引数叫做下标
根据变量[下标]就可以获取到这个变量数组的下标所对应索引的元素
console.log(arr[0]);

    arr[0]=1
    1 元素
    arr 数组变量
    0 下标 索引值
    arr[0]  下标变量


下标是从0开始,第一个元素对应的下标是0
因为这个100表示第101个元素,因此,数组先有101个元素,可是原数组只有4个元素,就
会自动生成96个元素,在里面,这些都是空元素。
arr[100]=20;

length 长度 数组的元素数量

    length是最大下标+1  最大下标=length-1
    console.log(arr.length);
    在末尾添加一个元素1
    arr[arr.length]=1;
    如果设置的length的长度比原有的长度大,这就会将数组的元素数量增多,并且补充空元素在数组末尾
    arr.length=10;
    如果设置的length的长度比原有的长度小,这就将数组的元素进行删除,只保留给定的长度
    arr.length=2;
    如果设置length为0时,表示清空数组
    arr.legnth=0;
	如果设置length--时,表示删除数组的最后一个元素
    arr.length--;

push与unshift

push(返回数组新长度)  给数组的尾部添加一个或者多个元素,**改变原数组**。
unshift (返回数组的新长度)给数组的头部添加一个或者多个元素,**改变原数组**

pop 与 shift

pop   删除数组尾部的一个元素,并且将这个删除的元素返回,改变原数组,改变数组的长度
shift 删除数组头部的一个元素,并且将这个删除的元素返回,改变原数组,改变数组的长度

concat,join与tostring

concat  (返回新数组) 将多个数组及元素合并为一个新数组,原数组不发生改变

连接一个数组

 var arr2=arr.concat(arr1);

连接多个数组

 var arr2=arr.concat(arr1,[9,10,11]);

连接多个数组及元素

var arr2=arr.concat(arr1,9,10,[11,12],13);

复制一个新数组,浅复制

var arr2=arr.concat();

toString

将数组转换为字符串,使用,连接每个元素,并且返回这个字符串,原数组不发生改变

join(返回拼接之后的字符串)

将数组以给入的参数作为间隔符连接为一个字符串,如果间隔符是空字符串,则将每个元素紧密连接在一起,返回这个字符串,原数组不发生改变

slice(返回新数组)

    将数组中第几位开始到第几位之前的所有元素截取返回一个新数组,原数组不变
    arr.slice(); 开始位置没有赋值,结束位置也没有赋值,开始位置默认从0开始,结束位置默认到数组尾部,这样做可以复制数组
    var arr1=arr.slice(2);   结束位置也没有赋值,结束位置默认到数组尾部
    开始和结束位置都可以给负数,负数就是倒数第几位,也可以使用arr.length+(负数)

splice(改变原数组,返回新数组)

 在数组中删除,替换,插入,新的多个元素,改变原数组,并且返回一个由删除元素组成的新数组
 arr.splice(开始位置,删除几个,插入的元素...);

 var arr1=arr.splice();如果没有开始位置,不会删除元素,返回一个空数组
 var arr1=arr.splice(2); 如果只有开始位置,没有删除几个,就会删除到数组的尾部
 var arr1=arr.splice(1,2);从下标为1的位置开始删除2个元素,返回被删除的这两个元素
  var arr1=arr.splice(1,2,"z"); 从下标为1的位置开始删除2个元素,并且在这个位置插入一个字符z,返回被删除的两个元素组成的新数组
  var arr1=arr.splice(1,2,"y","z");
  var arr1=arr.splice(1,0,"y","z"); 如果删除的数量为0时,表示不删除,在这个位置插入y,z两个字符,并且返回一个空数组
	遍历

for 和for in区别

1、for会遍历到空元素,但是for in不会遍历到

      for in遍历时 主要是针对对象的,目的是遍历key value这种键值对,因此
      for in使用变量会自动转换为字符串,数组是由对象创建来的,所以可以理解为
      数组中的下标就相当于对象中key,元素相当于对象中value,for in的前提
      必须是键值对,也就是说必须有键有值,数组中空元素,仅有下标没有值,不能
      称为键值对,因此,在for in中不做遍历

2、for循环时仅遍历数组的元素,但是for in循环时会遍历到数组元素之外的数组属性

    var arr=["a",,"b","c",undefined,"d","e","f"];
    arr.a=10;
    for(var i=0;i<arr.length;i++){
        if(i in arr) console.log(arr[i]);
        
    }

forEach

    遍历数组的每个元素,并且执行forEach函数中回调函数
    arr.forEach(回调函数)  回调函数中里面有3个参数,分别对应的是数组的元素,下标,数组本身
    arr.forEach(function(item){
            
    })

map

    遍历数组的每个元素,并且执行map函数中回调函数,将这个回调函数中return的结果分别存储在
    一个新数组的当前下标对应位置,并且返回这个新数组,原数组不改变

    var arr1=arr.map(function(item){
            return value
    })

forEach和map的区别

    forEach仅遍历数组的每个元素,map不但遍历数组的每个元素,还会将回调函数中return返回的结果
    放在一个新数组对应下标的位置,返回这个新数组,map使用后,返回的新数组与数组的长度相等
    如果没有使用return,则该项就是undefined(所以不能作为筛选使用)

indexOf

    arr.indexOf(元素)
    查找元素所对应的下标,如果找到了就返回找到第一个下标,如果没有找到返回-1

lastIndexOf

    arr.lastIndexOf(元素)
    从后向前查找元素所对应的下标,如果找到了就返回找到第一个下标,如果没有找到返回-1

includes

    arr.includes(元素);
    判断当前数组中是否有这个元素,如果有返回true,否则返回false 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩逸客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值