如果是数组, 可以使用
但是: 因为有個元素为0 , 获取的长度为2, 所以要留心判断条件
最近写js时碰到了当数组key不为数字時js获取数组的长度的长度为0 的情况。
js Array只支持数字索引若指定的key为非数字索引,那么length为0.
出现问题的原因已经知道了有的时候我们需要設置的key不是数字索引,而是非数字索引那么如何获取长度呢。我们可以把Array看成是特殊的Object类型有两种方式可以得到Object类型的长度:
该方法獲取长度是会获取到原型的属性的,如果一个对象继承了另一个对象或者在原型中设置了属性,要想获取对象的本身的属性时这个方法是不靠谱的。
因此第二个方法就是过滤到原型的属性:
问题到这里应该可以解决了,现在想要获取一个数组的实际指定的长度一般來说,我们不会为Array的原型添加额外的属性所以,我们可以通过采用上面的第一种方式解决
判断一个属性是否是共享属性,可以通过hasOwnProperty 及in 聯合判断
in:当对象中存在属性,返回true.
unshift:将参数添加到原数组开头并返回数组的长度
pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
push:将参数添加到原数组末尾并返回数组的长度
concat:返囙一个新数组,是将参数添加到原数组中构成的
arrayObj.slice(0); //返回数组的拷贝数组注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组注意是一个噺的数组,不是指向
arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前)返回数组地址
8、数组元素的字符串化
slice(start,end):返回从原数组中指定开始下標到结束下标之间的项组成的新数组
要说明的是,虽然第二种方法创建数组指定了长度但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。