JS === 类数组(伪数组)

// 今天跟成哥学习了类数组的相关用法,涨见识了,记录一下~

类数组:

//属性要为索引(数字)属性,必须要有length属性,最好要加上push

Array.prototype.push = function(target){

   obj[obj.length] = target;
   obj.length++;
}
var obj = {

"2" : " a",
"3" :  "b",
"length" : 2,
"push" : Array.prototype.push//"splice":Array.prototype.splice

//当加上这个splice属性后,此对象会以数组的形式显现,但仍然是对象。
} 

obj.push(‘c‘); ====> obj[obj.length] = target;   所以 obj[2] = "c" obj.length = 3 obj.push(‘d‘);  ====> obj[obj.length] = target;  所以 obj[3] = "d" obj.length = 4

======> 最后的 obj {"2" : "c","3" : "d","length" : 4,

}

原文地址:https://www.cnblogs.com/rabbit-lin0903/p/11318553.html

时间: 2024-11-01 21:35:22

JS === 类数组(伪数组)的相关文章

数组 / 伪数组 判断及方法调用 (权威指南笔记)

数组判断方法 function isArrayLike(o){ if(o && //o非null.undefined typeof o === "object" && //o是对象 isFinite(o.length) && //o.length是有限数值 o.length > 0 && //o.length为非负数 o.length === Math.floor(o.length) && //o.l

js类数组

类数组 - [ Array-like ] : objects 1. what's Array-like 类数组和数组很像,但是数组的很多方法却不能用,这就很尴尬了~ 像 arguments.nodelist 等这些数据有序集合,有长度和下标等属性,但却不是 Array. 这就是所谓的 Array-like(类数组/伪数组).对于 Array-like 我们可以用跨原型链来操作,eg :Array.prototype.slice.call(arguments, 0); 这也是把 Array-lik

使用apply的方法将伪数组转化为数组

js中好多DOM方法都是针对数组的,可是有时候我们会取得一些伪数组,此时要想操作伪数组,那就必须把伪数组转化为数组,以下通过apply(  )的方法demo一个实例,以供大家参考(以下是部分代码): </head> <body> <span>span</span> <span> span</span> <p>ppp</p> <span>span</span> <span> s

javascript 伪数组和转化为标准数组

1: 什么是伪数组 伪数组是一个含有length属性的json对象, 它是按照索引的方式存储数据, 它并不具有数组的一些方法,只能能通过Array.prototype.slice转换为真正的数组,并且带有length属性的对象. var obj = {0:'a',1:'b',length:2}; // 伪数组 var arr = Array.prototype.slice.call(obj); // 转化为数组 console.log(arr); // 返回["a","b&q

关于js中伪数组

伪数组: 具有length属性: 按索引方式存储数据: 不具有数组的push().pop()等方法: 伪数组无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push().pop()等方法,但仍可以对真正数组遍历方法来遍历它们.这种对象有很多,比较特别的是function内的arguments对象,还有像调用getElementsByTagName, document.childNodes之类的,它们都返回的NodeList对象都属于伪数组,也称为类数组,还有自定义的对象,

js类数组转数组的方法(ArrayLike)

1. 什么是类数组ArrayLike 拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解) 不具有数组所具有的方法 //类数组示例 var a = {'1':'gg','2':'love','4':'meimei',length:5}; Array.prototype.join.call(a,'+');//'+gg+love++meimei' //非类数组示例 var c = {'1':2}; //没有length属性就不是类数

你真的了解js伪数组吗?深入js伪数组

关于js伪数组 具有length属性: 按索引方式存储数据: 不具有数组的push().pop()等方法: 你可能知道怎么把伪数组转换为数组,但是你知道这里边的原理吗? 假如页面有一组li元素 <ul> <li>1111</li> <li>1111</li> <li>1111</li> </ul> 获取集合,控制台打印 这就是一个伪数组,长得很像数组,但是没有数组splice,concat,join,pop等方

js伪数组

伪数组定义 1.拥有length属性2.不具有数组所具有的方法 伪数组实例 <html> <head> <title></title> </head> <script> var fakeArray = { length: 3, "0": "first", "1": "second", "2": "third" };

js中伪数组

今天看资料时,讲到到了伪数组一词 当我们使用document.getElementsByTagName获取的元素标签集合就是伪数组 上图 当我用Array.isArray方法验证的时候,发现是false,(之前我一直觉得是数组的,暴露了小白的身份) 于是上网查了一下,看看别人的介绍 定义: 1.拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解2.不具有数组所具有的方法 (说实话,我希望来个明白人帮我翻译一下这段中文意思) 伪数

JS数组之伪数组以及伪数组转化为标准数组

什么是伪数组? 1,具有length属性 2,能够使用数组遍历方法遍历它们 3,不具有数组的push,pop等方法 哪些是伪数组? 典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组, 诸如var obj5 = { 99: ‘abc’, length: 100 }这样的数据也是伪数组 真数组的判断方法 * 如何判断数据是不是真数组:* 1.数据 instanceof Ar