
类数组对象是具有以下两点的对象:
拥有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其它相关文章!













