博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript---数组----
阅读量:4679 次
发布时间:2019-06-09

本文共 5871 字,大约阅读时间需要 19 分钟。

数组概述

什么是数组

存储一组或一系列相关数据的容器

//数组开辟空间是连续的;//声明数组的关键字也是var;//对存储的类型没有要求,对存储的数据多的时候才采用数组。 //数组为对象类型,用console.log会输出数组的详细信息。 //prototype:原型,是个属性。//获取数组的长度:数组.length;

  

  数组的好处

集中管理、访问速度和效率高 什么是下标
标识每一个空间唯一的索引号。最小下标为0,最大为长度-1;

  

如何定义数组?

json的方式(字面量的方式);```var 数组名 = [1,2,3];var arr = [];arr[0] = 1;//[下标]arr[1] = 2;arr[2] = 3;arr[3] = 4;console.log(arr[0],arr[1],arr[3],arr[5]);//1,2,4,undefined;```构造函数的方式(Array是内置的构造函数)```var arr = [5];//数组元素为5var list = new Array(5);//数组长度为5,且数值不能为负值var list = new Array(3,4)//数组长度为2,且内部的元素为3.4两者的区别 [1] 构造函数:如果只有一个参数是正整数时,表示数组长度。如果是负数或小数,报错。其他情况表示数组的元素。 json:里面是啥都行。```如何遍历数组?```//遍历数组进行赋值(使用循环语句进行赋值)var arr = new Array(5);for(var i = 0;i < 5;i++){    arr[i] = prompt("请输入数据:");}console.log(arr);//遍历数组单独输出元素var arr = new Array(5);for(var i = 0;i < 5;i++){    arr[i] = prompt("请输入数据:");}for(var i = 0;i < arr.length; i ++){    console.log(arr[i]);}```

  

数组的属性

口诀:增删改截拼复排转

1.增 (1)前增:unshift(增加的元素); 作用:在数组的首部增加元素,返回新增后数组的长度,会影响原数组。

```    var arr=["a","b","c","d","e"];    console.log(arr.unshift(1,2,3,4));//前面增加的内容    console.log(arr);//长度为9    var arr=["a","b","c","d","e"];    console.log(arr.unshift([1,2,3,4]));//前增一个数组。    console.log(arr);//长度为6,返回值为[1,2,3,4],a,b,c,d]    ```(2)后增:push(增加的元素);作用:在数组的尾部增加元素,返回新增后数组的长度,会影响原数组。    ```  var arr=["a","b","c","d","e"];  console.log(arr.push(1,2,3,4));//尾部增加的内容  console.log(arr);  ```

  

2、 删

(1)前删:shift();作用:删除数组首部的元素,一次只能删除一个元素。返回值为被删除的元素,会影响源 数组        var arr=["a","b","c","d","e"];        console.log(arr.shift());        console.log(arr);//b,c,d,f                ```(2)后删:pop(); 作用:删除数组尾部的元素,一次只能删除一个元素。返回值为被删除的元素,会影响源 数组
  var arr=["a","b","c","d","e"]; console.log(arr.pop()); console.log(arr);//a,b,c,d
 

3、改

splice(start,length,新增元素,...)//start:从哪个下标开始;length:删除几个元素 作用:可以再数组任意位置删除、修改、增加、任意数量的元素。返回值返回被删除的元素数组,会影响原数组。

  var arr=["a","b","c","d","e"];    console.log(arr.splice(1,2));    console.log(arr);//a,d,e    ```        ```    var arr=["a","b","c","d","e"];    console.log(arr.splice(1,0,1,2));    console.log(arr);//a,1,2,b,c,d,e

 

4、截slice(开始下标,结束下标);作用:截取数组中指定位置的元素,返回被截取的新数组,不影响源数组
  var arr=["a","b","c","d","e"];    console.log(arr.slice(2,4));    console.log(arr);//截取c,d.包含开始不包含结束,左闭右开。        var arr=["a","b","c","d","e"];    console.log(arr.slice(4,2));    console.log(arr);//截取到的是一个空数组。        var arr=["a","b","c","d","e"];    console.log(arr.slice(-4,-2));    console.log(arr);//b,c.反过来走,e为-1,以此类推。    ```
5、拼    concat(新元素)    作用:在指定数组后面拼接新的元素,返回拼接后的新数组,不影响原数组。
   var arr=["a","b","c","d","e"];        console.log(arr.concart(-4,-2));        console.log(arr);             var arr=["a","b","c","d","e"];            console.log(arr.concat([1,2,3,4]);            console.log(arr) //拼接一个数组,会把数组中的每个数拿出来重新拼接,形成新的数组。
6、复(复制)
var arr=["a","b","c","d","e"];var list = arr;list[0] = 2;//会将原数组的相应值也进行修改,所以不能这么写。var arr=["a","b","c","d","e"];var list = [];for(var i = 0,len = arr.length;i < len;i++){    list[i] = arr[i];}list[0] = 1;console.log(arr,list);var arr=["a","b","c","d","e"];var list = arr.slice(0);list[0] = 1;console.log(arr,list);var arr=["a","b","c","d","e"];var list = arr.concat();list[0] = 1;console.log(arr,list);var arr=["a","b","c","d","e"];var list = [];for(var i = 0,len = arr.length;i < len;i++){    list.push(arr[i]);}list[0] = 1;console.log(arr,list);

7、排

(1)reverse();    作用:逆序排列,将数组中的元素逆序存放,返回逆序后的数组,影响原数组。        var arr = [100,20,30,3,34,14];    console.log(arr.sort());//14,34,3,30,20,100    console.log(arr);//14,34,3,30,20,100 (2)sort();    作用:数组中的元素按字符串比较,从小到大排列,返回排序都得数组,影响原数组。        var arr = [100,20,30,3,34,14];    console.log(arr.sort());//100,14,20,3,30,34    console.log(arr);//100,14,20,3,30,34 sort(function(a,b){return a - b;})   数组中的元素按数字比较从小到大排,返回排序后的数组,影响源数组.   var arr = [100,20,30,3,34,14];   console.log(arr.sort(function(a,b){ return(a - b);}));//3,14,20,30,34,100   console.log(arr);//3,14,20,30,34,100 sort(function(a,b){return b - a;})   数组中的元素按数字比较从大到小排,返回排序后的数组,影响源数组。 姓名排序可以用到。   //从大到小   var arr = [100,20,30,3,34,14];   console.log(arr.sort(function(a,b){ return(b - a);}));//100,34,30,20,14,3   console.log(arr);//100,34,30,20,14,3
 
 

  

8、转

(1)toString():

  用于数组,将数组转为字符串,字符串以逗号分隔,返回字符串,不会影响源数组。 用于变量,将变量中的数字转为指定的进制。

//用于数组    var arr = [100,20,30,3,34,14];    console.log(arr.toString());    console.log(arr);        //用于变量    var num = 300;    alert(num.toString(2));//将300转为2进制的字符串。

(2)join(); 

  作用:将数组转为指定分隔符的字符串,返回转换后的字符串,不影响源数组

var arr = [100,20,30,3,34,14];    console.log(arr.join());    console.log(arr);    //join可以加参数,加什么参数就以什么分隔。    var arr = [100,20,30,3,34,14];    console.log(arr.join(""));//每个字符中间以空串分隔。    console.log(arr);    //字符串比较规则:从左到右依次比较。

  

排序算法(冒泡、选择)

冒泡排序:

冒泡排序的思想:相邻的两个数比较,如果满足条件,交换两个数的位置。

9 6 15 4 2第一种:从小到大第一轮比较:6 9 4 2 15//确认了最大值。第二轮比较:6 4 2 9 //又找到第二大的值第三轮比较:4 2 6第四轮比较:2 4即遍历出来的最大值不再参与下次遍历//第一种写法var arr = [9,6,15,4,2];for(var i = 1 ;i < arr.length;i++){//控制比较的轮数    for(var j = 0;j < arr.length - i;j ++){//遍历数组,取出元素与后面的相比较        if(arr[j] > arr[j + 1]){//改成小于则为从大到小            var t = arr[j];            arr[j] = arr[j + 1];            arr[j + 1] = t;        }    }}console.log(arr);第二种思想:9 6 15 4 2第一轮比较:2 9 6 15 4//求出最小值第二轮比较: 4 9 6 15第三轮比较: 6 9 15第四轮比较: 9 15var arr = [9,6,15,4,2];for(var i = 1;i < arr.length;i++){    for(var j = arr.length;j >= i;j --){        if(arr[j] < arr[j - 1]){            var t = arr[j];            arr[j] = arr[j - 1];            arr[j - 1] = t;        }    } }

选择排序

选择思想:拿出一个数来,与其后面所有的数相比较。

9 6 15 4 2 第一轮比较:6 9 15 4 24 9 15 6 22 9 15 6 4 //求出最小值第二轮比较:6 15 9 44 15 9 69 15 6 6 15 99 15 则为2 4 6 9 15var arr = [9,6,15,4,2];//从第一个开始遍历,到length - 2for(var i = 0;i < length - 1;i++){    //从i+ 1开始遍历,到length - 1    for(var j = i + 1;j < arr.length; j++){        if(arr[i]>arr[j]){            var t = arr[i];            arr[i] = arr[j];            arr[j] = t;                    }    }}

  

 

 

 

转载于:https://www.cnblogs.com/cjm-0512/p/10057433.html

你可能感兴趣的文章
[转]loadrunner:系统的平均并发用户数和并发数峰值如何估算
查看>>
Linux下Tomcat重新启动
查看>>
HTML Table to Json
查看>>
Theano 学习笔记(一)
查看>>
1.7 节点进行排序显示
查看>>
web最佳实践
查看>>
spring 集成shiro 之 自定义过滤器
查看>>
验证密码不允许有连续三位重复的正则表达式
查看>>
python 中对list去重
查看>>
Mono Libgdiplus库
查看>>
js模糊查询案例
查看>>
c语言基础知识要点
查看>>
Android模拟器无法上网访问网络失败解决办法
查看>>
node启动时, listen EADDRINUSE 报错;
查看>>
vue学习链接
查看>>
Systemd 初始化进程
查看>>
【C#学习笔记】文本复制到粘贴板
查看>>
Windows store 验证你的 URL http:// 和 https:// ms-appx:/// ms-appdata:///local
查看>>
python全栈开发_day7_字符编码,以及文件的基本读取
查看>>
js 验证码 倒计时60秒
查看>>