javascript学习笔记4:数组基础及其操作
2017-03-20 22:35
204 查看
基础知识
javascript是无类型的:数组元素可以是任意类型,并且同一个数组的不同元素也可能是不同的类型,甚至也可以是对象或其他数组Javascript的索引范围[0,2^32-2],数组最大能容纳2^32-2个元素。
javascript的数组是动态的:根据需要它们会增长或者缩减,并且在创建数组时无需声明一个固定的大小或者在数组大小变化时无需从新分配空间。
javascript数组可能是稀疏的:数组元素的索引不一定是连续的,它们之间可以有空缺。
每个数组有一个length属性,针对非稀疏数组数组,该该属性就是数组元素的个数,但是稀疏数组的length比所有元素的索引要大。
创建数组
直接创建:var empty = []; var primes = [2, 3, 5, 7]; var misc = [2.33, true, "string", ]; // 长度依然为3,最后一个逗号总是被忽略 var misc [2.33, true, "string", , ]; // 长度为4,最后一个逗号被忽略
数组的值不一定是常量,也可以是表达式、数组、对象
var base = 2333; var arr = [base, base+1, base+2]; var b = [{a: 23}, [12, 13, 14]];
调用Array()创建数组。
//调用时没有参数,等同于 arr = [] var arr = new Array(); //调用时预先知道数组的长度 var arr = new Array(10); //调用时显式的指定两个以及多个数组元素 var arr = new Array(1, 2, 3, 4, "hello");
javascript数组没有越界的概念,当试图查询任何对象中不存在的属性时,不会报错,只会得到undefined值
数组元素的添加和删除
通过索引赋值var arr = []; a[0] = "hello";
使用push()方法在数组末尾添加一个或者多个元素
var a = []; a.push("hello"); a.push(",", "world!"); a[a.length] = "yes";
在数组首部添加一个元素
var a = [1, 2, 3]; a.unshift(0); //数组头部添加一个元素或者多个元素,并将已经存在的元素移动到更高的索引位置 //效果同unshift(0) for (var i = arr.length - 1; i >= 0; i--) { arr[i] = arr[i+1]; } arr[0] = 0;
删除数组尾部的元素
var arr = [1, 2, 3, 4, 5]; delete arr[4]; //arr = [1, 2, 3, 4, ]; arr.pop(); // arr = [1, 2, 3, 4];
删除数组首部的元素
//原生删除 var arr = [1, 2, 3, 4, 5]; for (var i = 0; i < arr.length; i++) { arr[i] = arr[i+1]; } //结果 arr = [2, 3, 4, 5, undefined] //shift()方法删除数组第一个元素并将其返回,然后把所有随后的元素下移一个位置 arr.shift(); //arr = [3, 4, 5, undefined]
字符串的连接,join()函数将所有元素都转化为字符并且连接在一起,返回最后生成的字符串,如果不指定参数,默认使用“,”连接。
var arr = [1, 2, 3, 4, 5]; arr.join(); //'1,2,3,4' arr.join(""); //'1234' arr.join("-"); //'1-2-3-4'
reverse()方法将数组中的元素逆序排序,返回逆序数组。
var arr = [1, 2, 3, 4, 5]; arr.reverse(); //arr = [5, 4, 3, 2, 1]
sort()方法将数组中的元素排序并且返回排序后的数组。当不带参数调用sort()时,数组以字母表顺序排序。当数组中包含undefined的时,将被排到末尾
var arr = ["e", "b", "d", , "c", "a"]; arr.sort(); //arr = ["a", "b", "c", "d", "e", ];
slice()方法指定数组的一个片段或子数组。两个参数分别指定开始和结束的位置。如果只指定一个参数返回数组包含从开始到数组结尾的所有元素。如果参数中有负数,例如-3指的是倒数第三个元素。slice()方法不会改变原数组
// slice(a, b)是返回索引[a ,b)范围内的元素 var arr = "hello,world"; //字符串相当于一个数组,类数组对象 arr.slice(0, 5); //hello arr.slice(-7, -1); //o,worl
splice()方法在数组中插入或者删除元素,跟slice()方法不同,splice()会改变数组本身。插入或删除数组时,length随之而变。
//删除: var arr = [ 'a', 'b', 'c', 'd', 'e' ]; arr.splice(3); //返回值是从3到最后['d', 'e'],arr = ['a', 'b', 'c'] arr.splice(1, 2);//返回值是['b', 'c'], arr = ['a'] //插入:
toString()和toLocaleString() 针对数组toString()将其每个元素转化为字符串并且输出用逗号分隔的字符串列表
var arr = [1, 2, 3]; arr.toString(); //'1,2,3' var arr = [1, [2, "c"]]; arr.toString() //'1,2,c'
这里与不使用参数的arr.join()返回的字符串一样
相关文章推荐
- JAVA数组和JAVA集合类的对象操作-Java基础-Java-编程开发
- DELPHI基础:字符串、数组操作函数
- 黑马程序员_数组及其排序查找操作
- JavaScript的数组及其操作
- 黑马程序员_JavaSE基础06 之 数组的操作 求最值 排序 折半查找
- javascript下的数组及其操作
- 黑马程序员JAVA基础-数组的操作
- mysql的基础操作及其常见问题解决
- 位运算的基础知识点(关联指针、数组的操作)
- Java基础之数组的操作
- Javascript数组及其操作
- Iphone数组一些基础操作 NSArray/NSMutableArray
- javascript下的数组及其操作【转自http://blog.zjol.com.cn/173915/spacelist-blog】
- javascript下的数组及其操作
- Iphone数组一些基础操作 NSArray/NSMutableArray
- javascript下的数组及其操作
- 1 MATLAB介绍及其基础操作
- javascript数组及其操作(zz)
- 数组的初始化及其相关操作
- 黑马程序员JAVA基础-数组以及一些基本操作