js数组详解

目录

一,如何理解js中的数组?

二,创建js数组对象

三,数组的遍历

1,使用普通的循环语句for&while&do while

2,使用增强版for循环

四,数组构造函数

1,什么是数组空位?

2,数组构造函数

五,数组的静态方法和实例方法

1,push()&pop()方法

2,shift()&unshift()方法

3,join()方法

4,concat()方法

5,reverse()方法

6,slice()方法

7,splice()方法

8,sort()方法

9,indexOf()&lastIndexOf()方法


一,如何理解js中的数组?

        js数组可以简单的理解为学生宿舍楼(一层宿舍楼有很多房间,每个房间住的人也不一样),因为js数组用来装各种各样的不同类型的数据。

        js的数组不同于C语言的数组,C语言的数组只能存单一的数据类型,js的数组里面可以存任意类型的数据。js数组与python的list列表极其相似。

二,创建js数组对象

        首先,数组用中括号[]表示,一堆数据凡是被[]包起来,那么他就是一个数组对象。空数组直接就是一个中括号arr_nothing = []。

var arr = [1,2,3,'str',true,false,3.14,null,undefined,[1,2,3]];
console.log(arr);
// [ 1, 2, 3, 'str', true, false, 3.14, null, undefined, [ 1, 2, 3 ] ]

        也可以先定义一个空数组,再利用数组索引给数组添加数据。

var arr1 = [];
arr1[0] = 'javascript';
console.log(arr1);
// [ 'javascript' ]

        数组元素的访问使用数组名+[index]的形式,即array[0],array[1],array[2],如果array[0]这个数据仍然是一个数组,那么array[0][0]就可以访问到这个嵌套数组的第一个数据。

        数组对象有一个length属性,即数组中元素的个数,array.length。字符串的length属性不可修改,但是数组length属性可以修改,若将数组的length修改为小于当前的数据个数,则造成数据丢失,令array.length = 0,即可清空数组。

var arr1 = [0,1,2,3];
console.log(arr1);
arr1.length = 2;
console.log(arr1);
// [ 0, 1, 2, 3 ]
// [ 0, 1 ]
var arr1 = [0,1,2,3];
console.log(arr1);
arr1.length = 0;
console.log(arr1);
// [ 0, 1, 2, 3 ]
// []

三,数组的遍历

1,使用普通的循环语句for&while&do while

var arr1 = [0,1,2,3];
for (var i = 0; i < arr1.length; i++) {
    console.log(arr1[i])
}
// 0
// 1
// 2
// 3
var arr = [1,2,3,'str',true,false,3.14,null,undefined,[1,2,3]];
no = 0;
while(no < arr.length){
    console.log(arr[no])
    no++
}

2,使用增强版for循环

        语法:for (var 索引 in array){}。

var arr1 = [0,1,2,3];
for (var index in arr1) {
    console.log(arr1[index]);
}
// 0
// 1
// 2
// 3

四,数组构造函数

1,什么是数组空位?

        如var arr1 = [0,,2,3],存在用英文逗号隔开,却没有数据,则称一个数组空位,他仍然是数组的一个索引位置,只不过没有绑定到对象,他的值是undefined,即变量存在但是 无值。

var arr1 = [0,,2,3];
console.log(arr1[1]);
// undefined

2,数组构造函数

        是一种创建数组的方式。Array是js中的原生自带的对象构造函数,也就是js解析引擎一经运行就定义了Array类。利用var arr = []的方式定义数组,实际上是语法简写(字面量形式),本质上调用的是原生构造函数。

        语法如下:var arr_name = new Array(3)。需要给Array后面的括号里传入参数。同时Array也是一个函数,使用:var arr_name = Array(3)也能创建一个长度为3的数组。像这样创建出来的数组里面都是数组空位,没有数据与数组索引进行绑定,也就是empty×3。

var arr = Array(3);
var arr1 = new Array(3);
arr1[0] = 1;
console.log(arr);
console.log(arr1);
// [ <3 empty items> ]
// [ 1, <2 empty items> ]

        不建议使用这种方法来创建数组对象。

五,数组的静态方法和实例方法

        我们创建的数组是Array类的实例对象,所以每个数组都有Array原型中的实例方法。另外Array类有一个静态方法:Array.isAarray(arr obj),它用于判断一个对象是否为数组对象,返回true或者false。

console.log(Array.isArray([1,2]));
// true

1,push()&pop()方法

        用途:在数组尾巴处添加数据或者删除数据,会在原来数组基础上进行修改。push()方法会在数组尾巴新加上一个数据,并让数组的length属性+1并返回。

var arr = [1,2];
console.log(arr,'and',arr.length);
console.log(arr.push(3),'and',arr);
// [ 1, 2 ] and 2
// 3 and [ 1, 2, 3 ]

        pop()方法用来弹出数组最后一个元素,并返回弹出的数据内容。

var arr = [1,2,['nonono']];
console.log(arr.pop());
// [ 'nonono' ]

        当对空数组使用pop方法时,由于没有数据可以弹掉,默认返回undefined。

2,shift()&unshift()方法

        shift()方法用于删掉数组的第一个元素,也就是索引为0的数据。并返回被删掉的数据内容。利用shift删掉数据的特性,可以利用他来清空数组。

var arr = [1,2,['nonono']];
console.log(arr.shift());
console.log(arr);
// 1
// [ 2, [ 'nonono' ] ]

        清空数组:

var arr = [1,2,['nonono'],,];
while(arr.shift()){
    //pass
}
console.log(arr);

3,join()方法

        数组对象的join方法实现:将数组里面的数据用指定的参数连接起来组成一个字符串。数组空位和undefined会转换为空字符串。这个方法与字符串对象方法的split()方法刚好相反。

arr = [1,2,3,undefined,4,'666',,5];
console.log(arr.join());
console.log(arr.join('#'));
// 1,2,3,,4,666,,5
// 1#2#3##4#666##5

4,concat()方法

        用于在一个数组后面拼接一个或多个数组。另外也可以在尾部加上其他类型的元素,参数个数不定。

arr = [1,2,3];
arr_new = arr.concat([4,5]);
arr_new = arr_new.concat('666')
console.log(arr_new);
// [ 1, 2, 3, 4, 5, '666' ]

5,reverse()方法

        reverse方法用于将数组里面的元素反着放,并不是大小排序。该方法在原始数组上进行修改。

arr = [1,2,3,[12,13],'666'];
console.log(arr.reverse());
// [ '666', [ 12, 13 ], 3, 2, 1 ]

6,slice()方法

        slice()方法用于数组切片,他有两个参数:slice(start,end),取不到end值。

arr = [1,2,3,[12,13],'666'];
console.log(arr.slice(0,3));
// [ 1, 2, 3 ]

7,splice()方法

        splice()方法用于:将数组中指定索引的数据删除并替换为其他数据。这个方法会在原来的数组上进行修改。

arr = [1,2,3,[12,13],'666'];
arr.splice(0,3,6,6)
console.log(arr);
// [ 6, 6, [ 12, 13 ], '666' ]

8,sort()方法

        该方法将数组中的每一个数据先转换为字符串,再按照字典的形式进行排序。如果是纯数字则会按照有小到大的顺序排序。

arr = [1,2,3,[12,13],'666'];
arr.sort()
console.log(arr);
// [ 1, [ 12, 13 ], 2, 3, '666' ]

9,indexOf()&lastIndexOf()方法

        用于获取指定数据的索引和最后一次出现的索引。

arr = [1,2,3,[12,13],'666',1];
console.log(arr.indexOf(2),'and',arr.lastIndexOf(1));
// 1 and 5
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
splice() 是 JavaScript 数组对象的一个方法,用于修改数组的内容。它可以实现删除、插入和替换数组元素的功能。 splice() 方法的语法如下: array.splice(start, deleteCount, item1, item2, ...) 参数说明: - start:必需,指定开始修改的位置,即要删除或插入元素的起始索引。 - deleteCount:可选,指定要删除的元素个数。如果 deleteCount 为 0,则不删除任何元素。 - item1, item2, ...:可选,要插入到数组中的新元素。 返回值: splice() 方法返回一个由被删除元素组成的新数组。 下面是一些示例用法: 1. 删除元素: ```javascript var fruits = ['apple', 'banana', 'orange', 'grape']; fruits.splice(2, 1); // 从索引为2的位置开始删除1个元素 console.log(fruits); // 输出:['apple', 'banana', 'grape'] ``` 2. 插入元素: ```javascript var fruits = ['apple', 'banana', 'grape']; fruits.splice(1, 0, 'orange'); // 在索引为1的位置插入'orange' console.log(fruits); // 输出:['apple', 'orange', 'banana', 'grape'] ``` 3. 替换元素: ```javascript var fruits = ['apple', 'banana', 'grape']; fruits.splice(1, 1, 'orange'); // 替换索引为1的元素为'orange' console.log(fruits); // 输出:['apple', 'orange', 'grape'] ``` 4. 删除并返回被删除的元素: ```javascript var fruits = ['apple', 'banana', 'orange', 'grape']; var deleted = fruits.splice(1, 2); // 从索引为1的位置开始删除2个元素,并将被删除的元素存储在变量 deleted 中 console.log(fruits); // 输出:['apple', 'grape'] console.log(deleted); // 输出:['banana', 'orange'] ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值