
js数组和对象哪个效率高
3个回答
展开全部
这个问题是好问题。能问这个说明JS是入门了。
首先JS的数组和C语言的数组是不一样的。C的数组是连续内存存储,通过指针或这下标可以直接定位数组中的元素。而JS的实现要复杂一些。
JS中,数组的内部实现有点不一样,如果数组使用的过程中,所有的元素都是同样的结构,那么会尽可能按照C语言的方法去实现,但是一点添加一个异类的元素,JS解释器会立刻重构这个数组,采用哈希表。你可以认为大多数情况下,都是用哈希表的。哈希表不光要算哈希值,而且如果数组特别大的情况,还要有复杂度为O(n)的链表遍历。很亏。最后,JS的数组的索引看起来是个数字,但是实际上在实现的时候,会被内部转换为字符串……
首先JS的数组和C语言的数组是不一样的。C的数组是连续内存存储,通过指针或这下标可以直接定位数组中的元素。而JS的实现要复杂一些。
JS中,数组的内部实现有点不一样,如果数组使用的过程中,所有的元素都是同样的结构,那么会尽可能按照C语言的方法去实现,但是一点添加一个异类的元素,JS解释器会立刻重构这个数组,采用哈希表。你可以认为大多数情况下,都是用哈希表的。哈希表不光要算哈希值,而且如果数组特别大的情况,还要有复杂度为O(n)的链表遍历。很亏。最后,JS的数组的索引看起来是个数字,但是实际上在实现的时候,会被内部转换为字符串……
2018-06-27 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注

展开全部
数组和对象是两种存储结构,性能的问题取决于使用for还是for in,for 的的性能明显会高于for in因为前者直接遍历数据,但是他不能访问到对象的key值,而后者则可以具体访问到key,具体使用您可以google,在使用for in的时候会遍历对象的原型链这样会增加算法的时间复杂度,所以说性能问题不再存储结构上,而在于遍历上。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对象数组:里面存放对象的数组 数组对象:js中数组就是个对象 是这样的? 对象数组不还是数组?什么使用条件...?你要存什么数据就存呗,js弱类型,数组不是只能存单一类型的。老实说不存在什么对象数组,字符串数组的分类
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询