javascript - 如何构建一个伪数组?
高洛峰
高洛峰 2017-04-10 17:39:17
[JavaScript讨论组]

不是像 {0:'a',1:'b',length:2} 这样的伪数组

是需要像下图这样的伪数组,即输出后浏览器返回式有[]这样的样式的。

自己尝试了几种方法还是没有这个样式,求解TT,感谢各位


可能我说的不是很明白,我是想构建一个类似于arguments,节点列表后这样的伪数组,就是一个可以被浏览器格式化成拥有[xx,xx,xx]的样式【样式是指左右是直角括号】,但是不具备数组应该有的方法【不具有concat,slice..等等方法】

关于伪数组
http://www.cnblogs.com/aaronjs/archive/2011/09/05/2167541.html

http://www.nfriedly.com/techblog/2009/06/advanced-javascript-objects-arrays-and-array-like-objects/

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
黄舟

如果只是为了让Chrome浏览器控制台输出这种样式的话,我记得你只需要在对象上定义:

  • length属性

  • splice方法

例如:

var arr = {1: 'a', 2: 'b', 3: 'c', length: 2, splice: function(){}};

就行了。

但是,首先我不知道这是什么原理,估计跟控制台内部实现有关;其次好像真地没什么意义。

伊谢尔伦

没明白,你具体想干嘛,jQuery 也是这个样式啊

怪我咯

你那个不是数组,就是一个HTML格式的字符串把

阿神

没听过伪数组这概念,下面只是由dom的字符串所组成的数组,然后浏览器控制台给你格式化输出了而已

高洛峰

。。。。。。
{0:'a',1:'b',length:2} 这个是对象, 不是数组。。。
js 数组初始化可以 var arr=[] 表示。。
arr.push() 往数组里添加 元素。。。

你说的伪数组 是 likeArray 的概念?
document.querySelectorAll() 得到的就是一个 likeArray, 类型是 NodeList
.constructor 可以查看类型

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号