JavaScript Array 的学习
首先创建数组
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 的学习的更多相关文章
- javascript Array Methods(学习笔记)
ECMAScript 5 定义了9个新的数组方法,分别为: 1.forEach(); 2.map(); 3.filter(); 4.every(); 5.some(); 6.reduce() ...
- javascript Array 方法学习
原生对象Array学习 Array.from() 从类似数组的对象或可迭代的对象返回一个数组 参数列表 arraylike 类似数组的对象或者可以迭代的对象 mapfn(可选) 对对象遍历映 ...
- Javascript提升阶段学习
JavaScript1:javascript简介 JavaScript是一种脚本语言,能实现网页内容的交互显示,当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互的操作来 ...
- javascript的ES6学习总结(第二部分)
1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...
- javascript的ES6学习总结(第一部分)
ES6(ESNext学习总结——第一部分) ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版. ECMA每年6月份,发布一个版本 201 ...
- 【学习笔记】JavaScript的基础学习
[学习笔记]JavaScript的基础学习 一 变量 1 变量命名规则 Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头.例如: var myTestValue = 0, mySeco ...
- javascript的ES6学习总结(第三部分)
1.ES6中的面向对象的类 1.1.定义类 在ES5中,我们写一个类,通常是这么写的 function Person(name,age){ this.name = name; this.age = a ...
- 7 种 Javascript 常用设计模式学习笔记
7 种 Javascript 常用设计模式学习笔记 由于 JS 或者前端的场景限制,并不是 23 种设计模式都常用. 有的是没有使用场景,有的模式使用场景非常少,所以只是列举 7 个常见的模式 本文的 ...
- JavaScript 权威指南-学习笔记(一)
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...
随机推荐
- Android渐变GradientDrawable叠加组合环ring
Android渐变GradientDrawable叠加组合环ring 写一个Android环形shape之间的叠加组合形成新图像的例子.代码: <?xml version="1. ...
- PTA 01-复杂度2 Maximum Subsequence Sum (25分)
题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/663 5-1 Maximum Subsequence Sum (25分) Given ...
- [luoguP2886] [USACO07NOV]牛继电器Cow Relays(矩阵)
传送门 矩阵快速幂,本质是floyd 把 * 改成 + 即可 注意初始化 因为只有100条边,所以可以离散化 #include <cstdio> #include <cstring& ...
- hdu4115:Eliminate the Conflict
n<=10000局剪刀石头布,对面第i局出Ai,m<=10000种对你出什么提出的要求:Xi Yi Wi 表示第Xi局和第Yi局,Wi=1:必须不同:Wi=0:必须相同,问是否存在你一局都 ...
- nginx反向代理ajax,解决跨域问题
server { listen 8000; server_name somename alias another.alias; location /a { add_header 'Access-Con ...
- linux 安装报错:pkg-config not found
linux 安装报错:pkg-config not found 使用编译安装时,在执行./configure时报如下错误: ... ... checking for pkg-config... no ...
- HDU 1074 Doing Homework【状态压缩DP】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意: 给定作业截止时间和完成作业所需时间,比截止时间晚一天扣一分,问如何安排作业的顺序使得最 ...
- 问题解决:FFmpeg视频编解码库,无法解析的外部信号
在编译FFmpeg相关项目时.可能会出现: error LNK2019: 无法解析的外部符号 "int __cdecl avpicture_fill(struct AVPicture *,u ...
- There is no PasswordEncoder mapped for the id "null"
There is no PasswordEncoder mapped for the id "null" 学习了:https://blog.csdn.net/dream_an/ar ...
- Swift简单介绍 教程
Swift是什么? Swift是苹果于WWDC 2014公布的编程语言.这里引用The Swift Programming Language的原话: Swift is a new programmi ...