类数组对象是具有以下两点的对象:
拥有length属性,其它属性(索引)为非负整数
不具有数组所具有的方法
类数组:本质是一个对象,只是这个 对象 的属性有点特殊,模拟出数组的一些特性。
如何手动创建类数组对象
1、首先创建一个空对象
var array_like = {};//创建一个空对象
2、为对象直接定义数字下标的属性,这在其他语言里是绝对不允许的,对象属性不能使用数字开头,但JS里是可以的,甚至使用中文都可以
array_like[ 0 ] = "test 0"; array_like[ 1 ] = "test 1"; array_like[ 2 ] = "test 2"; array_like[ 3 ] = "test 3";
3、关键点,为对象设置length属性和splice属性为数字和函数
//关键点 array_like.length = 4;//为对象设置length属性 array_like.splice = [].splice;//同时设置splice属性为一个函数
PS:设定splice属性其实是为了欺骗浏览器的控制台,另其显示出数组的模样
实例:定义一个类数组对象“a”:
var a= {}; var i = 0; for(i=0; i<10 ; i++){ a[i] = i*i; } a.length = i; var total = 0; for(var j=0; j< a.length; j++){ total += a[j]; }
使用类数组示例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>类数组</title> </head> <body> <div></div> <div></div> <div></div> <div></div> <script type="text/javascript"> //当我们通过标签选择器获取<div>,并在控制台打印时,返回的值便是一个典型的类数组。 var divs = document.getElementsByTagName("div"); console.log(divs) //定义一个数组 var arr = ["jack","mack","sunny"]; //定义一个类数组对象 var obj = { 0 : "jack", 1 : "mack", 2 : "sunny", length : 3, push : Array.prototype.push, splice : Array.prototype.splice } arr.push("张三") obj.push("张三") console.log(arr) console.log(obj) //循环遍历 for(var i = 0;i < arr.length;i++){ console.log(arr[i]) } for(var j = 0;j < obj.length;j++){ console.log(obj[j]) } </script> </body> </html>
类数组表现
与普通对象不同的是,类数组对象拥有一个特性:可以在类数组对象上应用数组的操作方法。
比如,在ECMAScript 5标准中,可以用以下方法来将上面的对象o合并成字符串:
console.log(Array.prototype.join.call(o));//"42,52,63"
也可以在类数组对象上使用slice()方法获取子数组:
console.log(Array.prototype.slice.call(o, 1, 2));//[52]
想要了解更多前端知识,可访问 前端开发学习!!
以上就是javascript中怎么定义类数组?的详细内容,更多请关注易知道|edz.cc其它相关文章!