1数组的创建

 var arr1 = new Array();
var arr2=[1,2,3];

2数组常用的方法:

push,pop,shift,unshift,splice,slice,sort,reverse

2.1 push方法:在元素尾端插入元素

  var arr=[1,2,3];
var result = arr.push(1,3,4);//返回新数组的长度
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:1,2,3,1,3,4
result:6

2.2 pop方法:在元素末端弹出一个元素

 var arr=[1,2,3];
var result = arr.pop();//返回弹出元素的值
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:1,2
result:3

2.3 shift方法:在元素的首位弹出一个元素

 var arr=[1,2,3];
var result = arr.shift();//返回弹出元素的值
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:2,3
result:1

2.4 unshift方法: 在元素的首位插入元素

 var arr=[1,2,3];
var result = arr.unshift(4,5);//返回新数组的长度
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:4,5,1,2,3
result:5

2.5 splice方法: 对数组截取,然后插入数据,直接操作数组本身

 var arr=[1,2,3,4,5];
arr.splice(1,2,3,4);
console.log("arr:"+arr);

结果:

arr:1,3,4,4,5

分析:

第一个参数:截取开始的位置

第二个参数:截取的个数

第二个参数以后:插入的数据,如果没有第三个参数,则不插入

2.6 slice方法: 对数组截取,但不对数组本身操作

 var arr=[1,2,3,4,5];
var result =arr.slice(2,4);
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:1,2,3,4,5
result:3,4

分析:

第一个参数:截取开始的位置 为为闭区间

第二个参数:截取结束的位置 为开区间

如:[2,4)

2.7 concat方法: 对数组拼接,但不操作数组本身

 var arr1 =[1,2,3];
var arr2=[3,4,5];
var result = arr1.concat(arr2);
console.log("arr1:"+arr1);
console.log("arr2:"+arr2);
console.log("result:"+result);

结果:

arr1:1,2,3
arr2:3,4,5
result:1,2,3,3,4,5

2.8 join方法: 对数组每个元素之间插入元素,但不操作数组本身

 var arr =[1,2,3];
var result =arr.join("-");
console.log("arr:"+arr);
console.log("result:"+result);

结果:

arr:1,2,3
result:1-2-3

2.9 reverse方法: 把数组里的元素的位置倒过来

 var arr =[1,2,3];
var result =arr.reverse();
console.log("arr:"+arr);

结果:

arr:3,2,1

2.10 sort方法: 把数组里元素排序(有缺陷)

 var arr =[4,10,1,5];
var result =arr.sort();
console.log("arr:"+arr);

结果:

arr:1,10,4,5

分析:

在比较的过程中这个10是先按第一位比较再按第二位比较,所以排在了1后面,4前面。

2.11 sort方法扩张

         var arr =[4,10,1,5];
function compare(value1,value2){//自定义排序规则
if(value1>value2){
return 1;
}else if(value1<value2){
return -1;
}else{
return 0;
}
}
var result =arr.sort(compare);使用自定义的排序规则 实现从小到大排序 要想实现从大到小 修改排序规则
console.log("arr:"+arr);

结果:

arr:1,4,5,10

JavaScript数组的学习的更多相关文章

  1. JavaScript权威设计--JavaScript数组(简要学习笔记九)

    1.数组的创建 如: var a=[1.1,null,"a"]; var b=[1, ,3]; //中间的那个元素是undefined var c=[ , , ] 这里c.leng ...

  2. Javascript提升阶段学习

    JavaScript1:javascript简介 JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互的操作来 ...

  3. Javascript设置广告和时间表和数组的学习

    <html> <head> <meta charset="utf-8"> <title></title> </he ...

  4. RX学习笔记:JavaScript数组操作

    RX学习笔记:JavaScript数组操作 2016-07-03 增删元素 unshift() 在数组开关添加元素 array.unshift("value"); array.un ...

  5. Javascript经典算法学习1:产生随机数组的辅助类

    辅助类 在几个经典排序算法学习部分,为方便统一测试不同算法,新建了一个辅助类,主要功能为:产生指定长度的随机数组,提供打印输出数组,交换两个元素等功能,代码如下: function ArraySort ...

  6. [前端JS学习笔记]JavaScript 数组

    一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...

  7. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  8. 也谈面试必备问题之 JavaScript 数组去重

    Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. ...

  9. 深入浅出的javascript的正则表达式学习教程

    深入浅出的javascript的正则表达式学习教程 阅读目录 了解正则表达式的方法 了解正则中的普通字符 了解正则中的方括号[]的含义 理解javascript中的元字符 RegExp特殊字符中的需要 ...

随机推荐

  1. Media Queries详解--转

    Media Queries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码:  <link href="css/reset.css" rel ...

  2. 你好,C++(38)从问题描述中发现对象的属性和行为 6.4 工资程序成长记:类与对象(上)

    6.4  工资程序成长记:类与对象 “夜半三更哟,盼天明:寒冬腊月哟,盼春风.若要盼得哟,涨工资,岭上……”自从上次老板许诺给小陈涨工资以后,一转眼又过去几个月了,可是涨工资的事一点动静都没有.小陈只 ...

  3. WebAPI下的如何实现参数绑定

    本文将概述在WebAPI方式下将如何将参数绑定到一个action方法,包括参数是如何被读取,一系列规则决定特定环境采用的那种绑定方式,文章最后将给出一些实际的例子. Parameter binding ...

  4. Centos7下Intel与AMD双显卡驱动的安装

      前2天,在Nvidia单显卡上成功安装上了NVIdia的驱动,一时兴起,拿出另外的一个HP笔记本也准备装上驱动,悲催的是HP的显卡是AMD的,更加.更加悲催的是还是Intel+AMD的双显卡.网络 ...

  5. 【行为型】Iterator模式

    迭代器模式提供一种方法顺序访问聚合对象中的各个元素,而又不需要暴露该聚合对象的内部表示.对于该模式,估计几乎所有的人都使用过,在此直接给出类结构图参考如下: 如前所述,迭代器模式的思想主要是:一能提供 ...

  6. 在Xcode中如何屏蔽某个源文件的编译警告信息

    某些时候如果我们的源码在编译过程中出现大量的编译警告时,看起来是挺不爽的:但又确实没办法解决警告问题的时候,我们可以使用下面的方法来屏蔽指定的某个文件的所有警告信息. 1.在Xcode中选中工程文件. ...

  7. 测试和恢复性的争论:面向对象vs.函数式编程

    Michael Feathers最近的博文在博客社区引发了一场异常激烈的论战.Feathers发表言论说一些面向对象编程语言的内嵌特性有助于测试的进行,并且使用面向对象编程语言编写的代码更容易恢复. ...

  8. Linux前传——今天的学习

    感觉每天早上搞一个C语言的趣味题,很不错,算是比较实际的事情了.而且,好多都不会,主要是算法,也有很多语法不知道,这样补强很有用.嵌入式方面的课题进展有条不紊,感觉相关寄存器和I/O的使用必须通过大量 ...

  9. treap启发式合并

    注意输入v要在建根的前面. #include <cstdio> #include <iostream> #include <algorithm> #include ...

  10. 最小费用最大流MCMF 最小增广

    没有写单纯性的...应该不会有卡最小增广的出题人吧...(雾) struct MCMF{ struct tedge{int x,y,cap,flow,w,next;}adj[maxm];int ms, ...