js一维数组,api,二维数组

1、定义数组

空数组

1、数组字面量:[ ]

var 变量名 = [ ];//定义一个空的数组把数组保存到变量中

2、新的数组对象

var 变量名 = new Array();//定义一个新的数组对象并保存到变量中

下标(数组中每个数据的编号)

原理:数组中第一个数据下标为0,依次递增。

 2、数组的基本使用

a、通过下标获取数组中的指定一个数据

数组变量名[下标];
e.g:
document.write(num[2]);

b、获取数组长度:nums.length

3、数组中常用的函数

api:(常用api:push、pop、slice、splice、unshift、concat、join、reverse、indexOf、lastlndexOf)

1、用户编程接口,开发人员能够直接使用的代码。一个api能够实现一个功能。比如parselnt()就是一个api,功能是进行取整。

2、每个api都是一个功能

3、api是程序内置的,开发人员直接使用,无需知道内部如何实现

 push:数组末尾添加数据(可以同时添加多个)

arr.push(数据1,数据2,,,);
var arr =[1,2,3,4,5];
arr.push(6);
arr.push(7,8,9);
document.write(arr);//[1,2,3,4,5,6,7,8,9];

 pop:删除数组末尾最后一个数据

数组名.pop();
var arr =[1,2,3,4,5];
arr.pop();
document.write(arr);//[1,2,3,4];

 unshift:数组开头添加一个或多个数据

数组名.unshift();
var arr =[1,2,3,4,5];
arr.unshift(0);//开头添加0
document.write(arr);//[0,1,2,3,4];

 splice:数组指定位置进行插入或删除数据

如果只有一个参数,那么会从开始下标开始,删除数组后续所有元素

数组名.splice(插入或删除的开始下标,要删除的数量,要插入的数据1,要插入的数据2,要插入的数据3...);
e.g:
var arr =[1,2,3,4,5];
//只删除3,4
arr.splice(2,2);
document.write(arr);//[1,2,5];

//删除2,5
arr.spice(1,1);
arr.spice(3,1);
document.write(arr);//[1,3,4];

//在3之前插入6,7
arr.spice(2,0,6,7);
document.write(arr);//[1,2,6.7.3,4,5];
//删除4,5,追加6,7
arr.spice(3,2,6,7);
document.write(arr);//[1,2,3,6,7];

 join:能够将数组里的数据转为字符串

1、默分隔符号是,。即数据之间以逗号隔开

2、生成的字符串需要定义一个变量来接收

数组名.join(数据的分隔符号);
var arr =[1,2,3,4,5];
var str= arr.join("-");//arr.join(),默认是,
document.write(arr);//0-1-2-3-4;

 reserve:数据倒序存放

1、直接对原数组操作

数组名.reserve();
var arr =[1,2,3,4,5];
arr.reserve();
document.write(arr);//[5,4,3,2,1];

 concat:合并数组

获取的是一个新数组,所以需要给一个变量,方便调用

数组名.concat(数组1,数组2...);
var arr =[1,2,3,4,5];
var arr1 =[6,7,8,9];
 var arr3=arr.concat(arr1);
document.write(arr3);//[1,2,3,4,5,6,7,8,9]

 slice:根据下标获取数组部分数据

1、取的是一个新数组,所以需要给一个变量,方便调用

新数组是不包含结束下标对应数据

数组名.slice(子数组开始下标,子数组结束下标);

var arr =[1,2,3,4,5];
//获取2,3,4
var newarr=arr.slice(1,4);
document.write(newarr);//[2,3,4];

 indexOf:获取某数据在数组中第一次出现的下标,没有的话返回-1

var index = 数组名.slice(数据);

var arr =[1,2,3,4,5];
var index =arr.indexOf(3);//2
var index =arr.indexOf(6);//-1

 lastlndexOf:获取某数据在数组中最后一次出现的下标,没有的话返回-1

var index = 数组名.lastIndexOf(数据);

var arr =[1,2,3,4,5,2];
var index =arr.lastIndexOf(3);//2
var index =arr.lastIndexOf(2);//5
  •  排序
  • 第一种排序-不添加参数:按照自然顺序来处理。自然顺序是按照0-9,a-z来进行排序
  • 第二种需要我们提供一个排序函数,该函数就决定了数组里面的两个相邻数据如何进行排序
  • 自定义排序:
    ,数组变量名.sort(排序函数);
    例子:
    自然排序
    var arr1 =[1,2,3,'c',7,4,'b',9];//默认排序
    
    arr1.sort();
    document.write(arr1);
    自定义排序
    var arr2 = [123,432,111,65,4,234,996,332];
    arr2.sort(function(num1,num2) {
    return num2 -num1;
    })
    document.sort();//996,432,332,234,123,111,65,4
    
    随机打乱顺序
    arr1.sort(function(num1,num2){return Math.random()-0.5})//结果随机

二维数组

  1. 指的是一个数组中的每一个数据都是一维数组
  2. 一维数组是一个数组中的数据都是具体的数据,比如[1,2,3]

作用:

1、主要是描述多个复合数的集合

定义:

var arr =[];
arr.push([1,2,3]);

二维数组本身就是一个普通的数组,只不过数组里面的是数组,就称为二维数组

获取数据

数组变量名[下标]
arr[0];
arr[0][0];

 添加数据

arr.push();
arr[arr.length]=新数据;
eg:
student.push(['詹姆斯',35,'男',80]);

 删除数据

arr.length--;

修改数据

arr[0]=新数据;
eg:
//把arr[0]修改
arr[0] = ['战鼓',45,'男',56];
//把具体的修改
arr[1][0]='张三';

 长度

数组变量.length;
arr.legnth;//二维数组长度
arr[0]length;//二维数组第一个长度

 遍历:用双重for循环显示。

你可能感兴趣的:(前端,javascript,开发语言)