首先创建数组

     var empty = [];//创建一个空的数组;
var diffType = [1,'a',2.3,{},[4,5],,];//创建一个包含不同类型的数组
var undef = [,,]//创建一个空元素数组,注意这里数组的长度是2,不是3.JavaScript数组允许最后多一个逗号。但是在IE678长度是3.
var instance = new Array();//当然也可以用Array类创建一个数组,效果和[]一样。

读写数组元素

     var b = [1,null,2,,3,undefined,6];//定义一个数组
b[0];//读数组的第一个元素
b[0] = 100;//写数组的第一个元素,数组的下标可以是一个表达式
b[12.34] = 1234;//数组的下标可以不是一个整形数字,此时会将12.34作为一个属性名称,为b定义一个属性
b["12"] = 12;//当数组的下标是一个可以直接转化成整形数字的字符串时,就像当于写b[12] = 12,数组的length就成13了
b["13.00"] = 13;//当不能直接转化成正整数时,依然作为属性名处理
b[14.00] = 14;//可以直接转化成正整数,就相当于b[14] = 14,此时b.length = 15;
    var x = [,,,];//在IE9,10长度为3,IE8极更早的版本长度为4
var y = new Array(3);//注意:数组x, y 是有区别的。x,y都表示定义了一个长度为3的数组,但是x的三个元素值都为undefined,y的三个元素都没有值。但是表现是一样的。
console.log(0 in x);//false
console.log(0 in y);//false

数组的一些方法

push(p1,p2,...)在数组的末端添加元素,可以一次添加多个

pop()移除并返回最后一个数组元素

delete()将数组中的制定元素置为undefined,并不影响length属性。

join(p)将数组转化为字符串,用p分割。注意该方法会将递归内嵌的数组元素,一次调用toString()方法。

 var a = [1,null,[10,12,[23,25]],2,,3,undefined,6];
console.log(a);//[1, null, Array[3], 2, , 3, undefined, 6]
console.log(a.join());//"1,,10,12,23,25,2,,3,,6"
4 console.log(a.join(", "));//"1, , 10,12,23,25, 2, , 3, , 6"

reverse()反转数组

sort(f(a,b))如果没有参数,就按照字符顺序排序。undefined元素会排在最后。f是一个函数,用于定义排序规则。f返回值<=0,a在b前,否则b在a前。

concat()返回组合后的数组,但是并不改变原有数组。调用方法如下

 var b = [1,2,3];
console.log(b.concat(100,101));//[1, 2, 3, 100, 101]
console.log(b.concat([100,101]));//[1, 2, 3, 100, 101]
console.log(b.concat([100,101],[102,103]));//[1, 2, 3, 100, 101, 102, 103]
console.log(b.concat([100,101,[103,104]]));//[1, 2, 3, 100, 101, Array[2]]。并不会改变数组内的数组

slice(startIndex [,endIndex])返回指定区间(左闭右开)的元素。

 var b = [1,2,3,4,5];
console.log(b.slice(0,3));//[1, 2, 3]
console.log(b.slice(3));//[4, 5]
console.log(b.slice(7));//[]
console.log(b.slice(-3,-2));//[3]

splice(startIndex [,lenth,p1,p2,p3,...]返回被截取的元素,原来的数组将被改变。

 var c = [1,2,3,4,5,6,7,8];
console.log(c.splice(4));//[5, 6, 7, 8]
console.log(c.toString());//[1, 2, 3, 4]
console.log(c.splice(3,1,5,6,7,8));//[4]
console.log(c);//[1, 2, 3, 5, 6, 7, 8]

shift()删除数组的第一个元素。

unshift(p1,p2,...)将参数添加在数组的开头。

toString()将数组中的每一个元素调用toString方法。

JavaScript Array 的学习的更多相关文章

  1. javascript Array Methods(学习笔记)

    ECMAScript 5 定义了9个新的数组方法,分别为: 1.forEach();  2.map();  3.filter();  4.every();  5.some();  6.reduce() ...

  2. javascript Array 方法学习

    原生对象Array学习 Array.from()   从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike  类似数组的对象或者可以迭代的对象 mapfn(可选)   对对象遍历映 ...

  3. Javascript提升阶段学习

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

  4. javascript的ES6学习总结(第二部分)

    1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...

  5. javascript的ES6学习总结(第一部分)

    ES6(ESNext学习总结——第一部分) ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ECMA每年6月份,发布一个版本 201 ...

  6. 【学习笔记】JavaScript的基础学习

    [学习笔记]JavaScript的基础学习 一 变量 1 变量命名规则 Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头.例如: var myTestValue = 0, mySeco ...

  7. javascript的ES6学习总结(第三部分)

    1.ES6中的面向对象的类 1.1.定义类 在ES5中,我们写一个类,通常是这么写的 function Person(name,age){ this.name = name; this.age = a ...

  8. 7 种 Javascript 常用设计模式学习笔记

    7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...

  9. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

随机推荐

  1. xtu字符串 C. Marlon's String

    C. Marlon's String Time Limit: 2000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java ...

  2. HDU1412-{A} + {B},通过率并不高,但同样是用一个很简洁的函数unique,超短代码水过~

    {A} + {B} Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) http: ...

  3. 七牛云 X 英语流利说:教育 3.0 时代的智能突破

    美国当地时间 2018 年 9 月 27 日,国内领先的人工智能驱动的教育科技公司「英语流利说」正式挂牌纽交所,以其独创的教育 3.0 模式,成为中国「AI+ 教育」第一股. 教育 3.0 时代的智能 ...

  4. Vijos1655 - 萌萌的糖果博弈

    Portal Description 两人轮流操作两堆初始数量分别为\(a,b(a,b\leq2^{127})\)的石子.每人每次进行如下操作: 取走一堆石子,并将另一堆分成两个非零堆. 如果另一堆只 ...

  5. [Vijos] 弱弱的战壕

    描述 永恒和mx正在玩一个即时战略游戏,名字嘛~~~~~~恕本人记性不好,忘了-_-b. mx在他的基地附近建立了n个战壕,每个战壕都是一个独立的作战单位,射程可以达到无限(“mx不赢定了?!?”永恒 ...

  6. Codeforces936C. Lock Puzzle

    给个串,只能用操作shift x表示把后面x个字符翻转后放到串的前面.问s串怎么操作能变t串.n<=2000,操作次数<=6100. 打VP时这转来转去的有点晕... 可以想一种逐步构造的 ...

  7. Codeforces 658B Bear and Displayed Friends【set】

    题目链接: http://codeforces.com/contest/658/problem/B 题意: 给定元素编号及亲密度,每次插入一个元素,并按亲密度从大到小排序.给定若干操作,回答每次询问的 ...

  8. Java实验--继承与多态

    ---恢复内容开始--- 题目如下: [实验任务一]:面积计算(设计型). 1. 实验要求: 实验报告中要求包括程序设计思想.程序流程图.源代码.运行结果截图.编译错误分析等内容. 2.实验内容: ( ...

  9. 转:Linux中的内存管理

    前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...

  10. jenkins修改日志级别方法

    1.jenkins日志有时候也会消耗掉很大内存,在传输时也会消耗掉大量带宽,如图,300+M的日志大小,太夸张了吧 2.修改日志级别的方法: 在配置文件里修改,重启后永久生效,配置路径:/etc/sy ...