Js学习基础笔记(二)——数组

今天重新看了一遍最基础的JS学习内容,已经浏览完一遍,之后的notes也会依次放上来。JS的基础内容实际上比其它程序语言要简单,但在学习过程中某些细节方面也是不可忽视的。在之后的开发过程中,一些小小的细节没有考虑到都会导致各式各样的bug,因此,基础还是得要学扎实。今天的内容就先开始放数组吧。思维导图我先放上来,作为摘要以及后续回顾,思绪整理,都是非常好的。建议大家先看完整个知识分支,再看知识详细内容,看完之后再根据思维导图复习整理一下学习的内容,是否已经掌握。

这里写图片描述

一.访问数组

(一)一维数组
1.数组定义

    var arr1 = [];              //不包含元素的数组
    var arr2 = [95,96,97];          //包含3个元素的数组
    var arr3 = new Array();         //不包含元素的数组
    var arr4 = new Array(1,”hello”,true);   //包含3个元素的数组

注意:

var arr5 = [3]; //表示只包含一个整数元素的数组,下标未0,值为3
var arr6 = new Array(3);  //表示包含3个元素的数组,但值均为undifined

2.初始化数组
(1)数组中的元素可在定义时初始化,即直接赋值;
(2)也可以先声明一个空数组,随后再向其中添加元素

数组是引用类型的对象

数组赋值给变量时,其实赋值的是地址;因此a是3元素数组,b=a;再给b[0]赋值,a[0]也改变,因为b[0]和a[0]的地址相同

数组作为参数,也是按值传递,传递的是数组的地址

3.访问数组元素
(1)设置数组元素的值——SET

    var scores = [91,92,93];
    scores[2] = 95;     //将值为93的元素重新赋值为95
    scores[4] = 94;     //在数组尾部添加一个新的元素

(2)获取数组元素的值——GET

    var scores = new Array(1,2,3);
    console.log(scores[1]);     //2
    console.log(scores[3]);     //undefined
    console.log(scores);        //数组全部输出

(3)获取数组的长度——length

    var arr1 = [];
    console.log(arr1.length);   //长度为0

/—————————————–/

    var arr2 =[];       //长度为0
    arr2[0] =87;        //长度变为1
    arr2[3] =87;        //长度变为4

4.遍历数组元素

(1)for循环语句

var a = [10,20,30,40];
for(var i =0; i < a.length;i++){
    a[i] +=  5;
}

(2)for in 遍历数组元素——用于严格的依次遍历数组中的每一个下标

var numbers = [10,20,30];
for (var i in numbers){
    console.log(i+ "-" + numbers[i]);
}

5.数组类型
(1)索引数组
以0、1、2等数字作下标

(2)关联数组:
以一个字符串作下标,由于关联数组的length属性值无法获取其中元素的数量,所以遍历关联数组只能使用for…in循环,不推荐使用。

var a=[];
students[“s07”]= “Tom”

(二)二维数组
1.二维数组的定义:

var arr1 = [[11,12,13],[21,22,23],[31,32,33]];

    var arr1 = new Array();
    arr1[0] = [11,12,13];
    arr1[1] = [21,22,23];

    var arr1 = new Array();
    arr1[0] = new Array(1,”Tom”);
    arr1[1] = new Array(2,”Tim”);

2.访问二维数组

    var arr1 = [[11,12,13],[21,22,23],[31,32,33]];
    console.log(arr1[0][0]);    //访问打印
    arr1[1][2] = 230;   //赋值修改

3.遍历二维数组

for(var i = 0 ;i < arr1.length;i++){
    for(var j = 0 ;j < arr1[i].length;j++){
        console.log(arr1[i][j]);
    }
}

二.数组常用方法

获取数组字符串连接数组不会改变现有数组
(一)获取数组字符串
toString() 可以把数组转换成字符串,各元素以逗号相连
join([seperator]) 各元素之间由指定的separator相连

var arr1 = [1234,"Hello",new Date()];
console.log(arr1);
console.log(arr1.toString());       //输出字符串,各元素以逗号相连
console.log(arr1.join("——"));       //各元素以——相连

(二)连接数组
concat() 拼接两个或更多的数组
语法:arrObject.concat(arr1,arr2…arrn);
注意:该方法不会改变现有数组,仅仅返回一拼接后的副本
参数:可以是值,也可以是数组。例如:

var arr1 = [12,10];
    var arr2 = [50,60];
    var arr3 = arr1.concat[10,arr2];
    console.log(arr1);      //结果仍是12,10
    console.log(arr3);      //结果为12,10,10,50,60

(三)获取子数组
slice() 返回现有数组的一个子数组
语法:arrObject.slice(start,[end]);
参数start:可以取负值,即从尾部开始算起,倒数第一个元素为-1
参数end:指定结束处下标(不包含),若省略则取值到最后一个元素

举个栗子:

var arr1 = [10,20,30,40,50];
var arr2 = arr1.slice(1,4); //20,30,40
var arr3 = arr1.slice(-4,-2);   //20,30
var arr4 = arr1.slice(2);       //30,40,50

(四)修改数组
splice() 从数组中删除一部分元素,并添加另一部分元素
语法:arrObject.splice(start,count,e1,e2,…en);
参数count:要删除的元素个数
注意:现有数组内容会改变

(五)倒转数组
reverse()颠倒数组中的元素顺序
语法:arrObject.reverse();
注意:现有数组内容会改变

(六)数组排序
sort()用于对数组元素由小到大进行排序
语法:arrObject.sort([sortby]);
参数:若无,则按元素unicode码排序;也可以指定sortby,按其返回的正负值作排序的依据
注意:现有数组内容会改变

(七)进出栈操作
(1)push() 入栈,在栈顶(数组尾部)添加指定的元素,并返回新的长度
举个栗子:

var arr1 = [10,20];
    len = arr1.push(30);    //3
    len = arr1.push(40,50); //5

(2)pop() 出栈,删除并返回栈顶(数组尾部)的元素

var top = arr1.pop();   //50

(3)shift() 从数组头部增加元素,其余和push相同

(4)unshift() 从数组头部删除元素,其余和pop相同

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值