Array初识(常用方法)

什么是数组

    数组也是对象,它与普通对象类似都是用来存储值的。不同的是对象的属性是字符串,而数组是通过数字索引来进行定义的。

    数组就是一组数据的集合[1,2,3,4,5]

    数组中的每一向都有对应的顺序,每一项都有对应的下标

数组于对象的区别:

    与创建对象不同的是,构造函数创建数组可以直接添加数组项,构造函数创建对象时只能在下面通过对象.添加属性。

    2.字面量创建数组[]

    可以单独在下面去加数组每一项arr[0]数组索引[0],[1]...从0开始的整数:

        从0开始0是第一项

            1是第二项

             ... ...

             如果设置不是从0开始,空缺的项显示empty,如果查看空缺项,返回undefined

             arr.length 当数组是连续数组时索引值(0开始正整数)获取并返回数组个数。当不是里连续数组项时,length获取到的是最大索引+1的值。

    修改length长度大于原长度多出来部分就会空出来,返回空项值是undefined。

    当length长度小于元素组长度,会把数组中多余的项删除

    arr.length获取并返回数组个数

    不同的是对象的属性是字符串,而数组是通过数字索引(0开始的正整数)来进行定义

    数组比普通对象存储性能要好。开发中经常是用数组来存储数据

    数组内可以放所有基础数据,也可以放对象,对象里也可以放数组。

 

arr[0]指的是数组的第一项,arr[1]指的是数组的第二项... ...

 

创建数组的方法:

1.构造函数创建

    var arr= new Array();

2.数组字面创建

    var arr = [];

        arr[0] = 1;

        arr[2] = 2;

3.字面量直接加属性

    var arr = [1,2,3,2,4];

 

数组.length是数组长度同时也是数组个数如果想遍历数组每一项,数组.length可以作为循环范围

 

数组方法: 

红字的是最常用的三个:push,splice,map

   concat()连接两个或更多的数组,并返回结果。

 

    join()  数字转为字符串

    ——将数组的每项元素通过符串进行连接

    join(",/-/*") 1-2-3-4

    分把数组的所有元素放入一个字符串。元素通过指定的分隔符进行隔。

    

    pop()   删除并返回数组的最后一个元素,并将删除的数组项返回

        pop(素组[下标])

 

    push()  向数组的末尾添加一个或多个元素,并返回新的长度。能改变原数组。

        push(添加的内容)

 

    reverse()  颠倒数组中元素的顺序。

        reverse(数组)

 

    shift() 从前面删除一个,并将删除的数组项返回回来。

        shift(数组[下标])

 

    slice() 可以用来从数组中提取指定的元素,不会改变原数组,而是将街区的元素封装到一个新数组返回。

        1.截取开始位置索引,包含开始索引

        2.截取结束位置索引,不包括结束索引 

        -第二个不写结束索引,此时会开始索引到最后的所有元素。

        -索引可以传负值

        方法:slice(开始(必选),结束(可选))

 

    sort()  对数组中的元素进行排序

        -如果数组中元素都是个位数 数字排序就正常按照数字大小来排。如果两位数字包括两位的时候,sort只会排列第一位数字的大小顺序。

        列如:10,22,33,55,25,1569

        排序后:10,1569,22,25,33,55 

        ——如果数字的个数相同的数字

         列如:33,24,56,74,34,45

         如果是字母:abcdefg...这些事按照26个字母排列顺序。如果是多个字母的单词排列顺序还是按照字母排列的。

         除了数字以外的字母,汉字,特殊符号都是按照unicode编码编号来排的

 

    splice()可以删除数组中的元素,并向数组中添加新的元素(删除,添加)

    -使用splice会影响原数组,会将数组元素从原数组删除,并将被删除的元素作为返回值返回。

    -参数:

        第一个值开始位置索引

        第二个值是删除的个数/数量

        第三个级以后的项可以向数组中添加新的元素。

        splice(开始的下标,删除几个)

         常用于删除,修改数据

 

    unshift() 从数组前面添加一个或多个数组项,并将数组及数量返回。

        //unshift(内容,内容);注:用 , 隔开

 

    concat()  

    -合并数组,不改变原数组

     语法:数组1.concat(数组2);

    -在数组后面添加元素                      语法:数组.concat('11','22');

    -当数组里面是基本数据类型时,通过concat可以实现深拷贝

 

    split()将字符串分割成数组,

        ——可以根据字符串中某个字符分割,

        如:

        asdfljsds split('d');

        ['as','fljs','s'],以哪个字符分割这个字符就没了

indexOf()查询数组中的项,返回其索引值

    参数:indexOf(要找的项,开始点)

        第一个是要找的项。

        第二个是从哪开始查找,写的时索引值。

 var arr = [1,2,3,2,1]

arr.indexOf(2); //1 查找值为 2 的元素,结果在索引 1

arr.indexOf(99); //-1 查找值为 99 的元素, 没有找到返回 -1

arr.indexOf(1,1) //4 查找值为 1 的元素从索引 1 开始查找返回 索引 4

arr.lastIndexOf(2) //3 查找值为 2 的元素从右向左查找返回结果在索引 3

 

下面的方法为函数形式:

map(react的循环渲染)

数组映射(不改变原数组)

比如想给数组中每一个元素做一个转换

var arr =[1,2,3];

arr.map(function() {

    return x + 10

}) //[11,12,13]

console.log(arr); //[1,2,3]

把一个函数作为参数传入 map

该函数在每次遍历元素的时候调用

 

filter数组过滤(不改变原数组)

var arr = [1,2,3,4,5,6,7,8,9,10];

arr.filter(function(x,index) {

    return index % 3 === 0 || x >= 8;

}) // [1,4,7,8,9,10]

console.log(arr) //[1,2,3,4,5,6,7,8,9,10]

 

every数组判断

判断数组中每一项元素是否符合条件

var arr = [1,2,3,4,5];

arr.every(function(x) {

    return x < 10;

}) //true

arr.every(function(x) {

    return x < 3;

}) //false

 

some判断数组中任意一项元素是否符合条件

var arr = [1,2,3,4,5];

arr.some(function(x) {

    return x ==== 3;

}) //true

arr.some(function(x) {

    return x === 100;

}) //false

 

reduce 

把数组聚合成某种结果(不改变原数组)

var arr = [1,2,3];

var sum = arr.reduce(function(x,y) {

    return x + y

},0) //6

arr //[1,2,3]

 

isArray

判断是否为数组

注意这里是 Array.isArray是 Array 构造器对象上的属性

还可以用

[] instanceof Array; //true

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值