美文网首页
数组元素和数组对象属性

数组元素和数组对象属性

作者: 默成S | 来源:发表于2018-01-05 21:27 被阅读0次
var obj = {
  count: 1
}

var myArray = ['red', 'white', 'black'];
console.log(myArray.length);

myArray.obj = obj;
console.log(myArray.length);

两次打印myArray的length是多少?为什么?


两次的结果都是3。
因为数组是对象的特殊形式,它同样有着属性名的概念,但和对象不同的是它使用0~2^32-2之间的整数属性名作为数组的索引,当不指定属性名时默认使用索引作为属性名。而length属性值,即数组的方法.length的值始终等于当前最大索引+1。
本例里初始赋值自动为三个元素建立了索引,最大索引为2。第一次myArray.length = 2 + 1,所以是3。而后加入的obj由于属性名obj不是索引,自然不影响索引号和length的值,所以第二次输出myArray.length还是3。
如果把obj在myArray中属性名改成符合索引格式的值,那么myArray.length的值就会改变了,而且不一定要接着索引2。代码如下:

var obj = {
  count: 1
}

var myArray = ['red', 'white', 'black'];
console.log(myArray.length);

myArray["5"] = obj;
console.log(myArray.length);

两个重要概念:
1、js中一切都是对象。包括函数也是对象。对象可以动态添加属性值。
2、数组也是对象,只不过这个对象恰好有一个别的数据类型不具备的特点,可以通过索引来访问。

反思:

1、数组的基础知识没搞定:length属性代表数组中元素的个数,其值比数组中最大的索引大1,即使是一个var a = ['asdfghjk'];的数组,其length也是1.问题:那么,如果我想按照从0开始的顺序取数组中的一个值,该怎么取呢?</br>
2、myArray.obj = obj;并未给obj新增一个实体,而是只增加了一个属性:[ 'red', 'white', 'black', obj: { count: 1 } ]。obj是以键值方式添在myArray内。如果要增加一个实体应该使用push方法添加。

相关文章

  • 通过reduce方法明白in的用法

    计算数组中每个元素出现的次数 判断对象是否为数组/对象的元素/属性:格式:(变量 in 对象)......注意当“...

  • 数组元素和数组对象属性

    两次打印myArray的length是多少?为什么? 两次的结果都是3。因为数组是对象的特殊形式,它同样有着属性名...

  • 常用数组处理方法合集

    生成指定长度且元素为 1~10 的数组 计算一维数组中元素的出现次数 抽取数组对象里面的某个属性重新组成数组 数组...

  • # 数组常用属性和方法总结

    数组常用属性和方法总结 数组也是对象,数组有对象的所有方法 1. 数组属性(2个主要属性) length -> 万...

  • iOS杂碎2

    NSPredicate用法之一: 数组元素为对象时,通过对象的某个属性快速筛选出数组中的对象 关于NSPredic...

  • JS之类数组对象以及转换方法大全

    什么是类数组对象 有length属性和若干索引属性的对象。 为什么叫类数组 类数组对象可以执行一些常见的数组操作,...

  • JavaScript的数组对象

    JS数组对象: 属性: arr.length 方法: pop() //弹出数组最后一个元素 push() //从最...

  • Array对象

    Array对象属性: length 设置或返回数组中元素的数目 Array对象方法

  • JS数组

    如何创建数组,数组元素的读和写数组元素的的length属性 第二种创建数组元素的读写读取和设置时,使用方括号[],...

  • NumPy

    Numpy简单创建数组 Numpy查看数组属性 数组元素个数 数组形状 数组维度 数组元素类型 快速创建N维数组的...

网友评论

      本文标题:数组元素和数组对象属性

      本文链接:https://www.haomeiwen.com/subject/guasnxtx.html