Array数组对象
来源:互联网 发布:大数据时代 调研报告 编辑:程序博客网 时间:2024/05/16 18:38
author: 卢~耐
数组类型:伪数组,真数组,空数组
什么是伪数组
1. 不能直接使用数组里的方法的数组都是伪数组。
2. 这个对象必须要有length属性。
3. 如果这个对象的length不为0,那么必须要有按照下标存储的数据
比如:getElementsByTagName(),getElementsByClassName()
eg1:
js代码:
<script>
var aDiv1=document.getElementsByTagName('div'); length为0var aDiv2=document.getElementsByClassName('div1'); length为0
alert(aDiv1.length);
alert(aDiv2.length);
</script>
html代码:
<div class="div1"></div>
<div></div>
<div class="div1"></div>
<div class="div1"></div>
<div></div>
如何判断数据是不是伪数组:
1、不是对象直接干掉
2、是对象,没有length属性也干掉
3、有length,值必须是number类型
4、length值是number类型,并且值不为0,这个对象还得按照下标存储数据
什么是真数组
数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。
var arr=[ 1,2,3,"a",5];
var arr={[1,2,3],["w",2]}
如何判断数据是不是真数组:
1、数据 instanceof Array
2、Object.prototype.toString.call( 数据 ) === '[object Array]'
空数组
var arr=[ ];
var arr={ };
var arr=new Array();
数组的作用:使用单独的变量名存储一系列的值。
数组的定义:
1. new Array();
var arr= new Array(1,3,5,2,7,‘ ab ' );
var arr = new Aaary( 5 ); // 长度为5
2. Array [ ]
var arr = [ 1,3,5,2,7, 'ab ' ];
数组的三个属性
length
JavaScript数组的length属性是可变的。需注意,当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部被丢失。如下:
<script>var arr=[1,2,5,3,25,8,7,54,60,76];//定义了一个包含10个数字的数组alert(arr.length); //显示数组的长度10arr.length=12; //增大数组的长度alert(arr.length); //显示数组的长度已经变为12 alert(arr[7]); //显示第8个元素的值,为54arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃alert(arr[7]); //显示第8个元素已经变为"undefined"arr.length=10; //将数组长度恢复为10alert(arr[7]); //虽然长度被恢复为10,但第8个元素却无法收回,显示"undefined"</script>
从上可知,length对象不仅可以显式的设置,也有可能被隐式修改。JavaScript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素(指索引超过或等于length的元素),这时,length属性的值将被设置为所使用元素索引的值加1。如下例子:
<script>var arr=[1,2,5,3,25,8,7,54,60,76];alert(arr.length);//弹出 10arr[15]=34;alert(arr.length); //弹出 16</script>
prototype 属性
返回对象类型原型的引用。prototype 属性是 object 共有的。
objectName.prototype
objectName 参数是object对象的名称。
constructor 属性表示创建对象的函数。
object.constructor //object是对象或函数的名称。
说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。
数组的操作:
1. 数组的拼接
concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副
<span style="font-size:14px;"><script>var a= [1,2];var b = ["ab", "cd"];var c = ["ef",3];var d = a.concat(b,c);//document.write(d);alert(d); // 输出 1,2,ab,cd,ef,3 </script></span>
2. 数组的添加,删除
push() 添加到数组尾部,可多个
unshift() 添加到数组首部,可多个
pop() 删除最后一个元素
shift() 删除第一个元素
splice() 1.(指定位置)删除 2.(指定位置)插入 3.置换
var arr=[1,2,'a',3,'b'];arr.push(4); //添加到数组尾部 输出:1,2,'a',3,'b',4arr.push(4,6); 输出:1,2,‘a’,3,'b',4,6unshift() //方法可向数组的开头添加一个或更多元素,并返回新的长度。
arr.unshift('c',5);添加到数组首部 输出:'c',5,1,2,'a',3,'b',4arr.unshift(7,8,9);
arr.pop(); //删除最后一个元素arr.shift(); //删除第一个元素 alert(arr); arr.shift(1); //方法用于把数组的第一个元素从其中删除,并返回元素的值。alert(arr);arr.splice(2,3); //删除:从arr[1]后删除三个数 输出:1,2arr.splice(2,0,7,8,9); //插入:在第二个位置arr[1]后插入 7 8 9arr.splice(2,0,6,7); //在第二个数后删除0个,再插入6,7 输出:1,2,6,7,'a',3,'b'arr.splice(2,2,7,8); //置换:从arr[1]后删除两个数,再插入 7 8splice()详解
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。
slice()
slice() 方法可从已有的数组中返回选定的元素。
3.排序
sort()
<script type="text/javascript">var arr=[1,4,6,2,55,45,100];//方法1/*alert(arr.sort(function(n1,n2){if(n1<n2){return -1;}else if(n1>n2){return 1;}else if(n1==n2){return 0;}}));*///方法2alert(arr.sort(function(n1,n2){return n1-n2;}));</script>
reverse() 反转元素(最前的排到最后、最后的排到最前),返回数组地址
alert(arr.reverse(function(n1,n2){return n1-n2;}));
数组的类型:
一维数组
二维数组
多维数组
0 0
- javascript 数组Array对象
- array 数组对象
- javascript 数组Array对象
- JavaScript Array数组对象
- JavaScript 数组 Array 对象
- 【Javascript】Array 数组对象
- Array数组对象
- Array数组对象
- JavaScript数组 Array 对象
- JavaScript对象之数组Array
- JavaScript的数组Array对象
- JavaScript Array(数组)对象
- javascript中的数组对象(Array)
- JavaScript Array(数组)对象
- JavaScript Array(数组)对象
- JavaScript Array(数组)对象
- JavaScript Array(数组)对象
- 对象数组(Array of Objects)
- u盘在linux系统下文件只读方式的解决方案
- 你让一些人为你工作了七天,你要用一根金条作为报酬。金条被分成七小块,每天给出一块。 如果你只能将金条切割两次,你怎样分给这些工人?
- Java实现DTW
- CMake混合编译C/C++与object-C
- FPGA之特殊管脚
- Array数组对象
- Chrome 键盘快捷键
- 正确编写Designated Initializer的几个原则
- 大数据面试题
- 常用方法和一些快捷键
- 有两个房间,一间房里有三盏灯,另一间房有控制着三盏灯的三个开关, 这两个房间是分割开的,从一间里不能看到另一间的情况。 现在要求受训者分别进这两房间一次,然后判断出这三盏灯分别是由哪个开关控制的。
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
- 1010. Radix (25)
- thinkphp的程序本地测试正常放到网站上后打开一片空白