索引数组和关联数组的遍历方法(索引数组和关联数组的遍历)

图片授权基于 www.pixabay.com 相关协议
数据结构和对象

将系统中的数据用统一的格式、统一的样式管理起来,这些样式有可能是一个字节、一个节点,加以对数据的规划,我们称之为数据结构。

而最早出现的所谓对象,其实就是对数据的封装,属于「数据结构」中一种。

数据结构就是把数据存储为一块一块的,在我们需要获取它们的时候,可以用「索引」或者「名字 / key」来找到它们。

索引数组和关联数组

所有数据都可以看成只具有两种数据结构,一种是「索引数组」,另一种是「关联数组」。

数组:[\\\'web\\\',18,\\\'男\\\']对象:{name:\\\'web\\\',age:18,sex:\\\'男\\\'}

而索引数组其实是关联数组的一个特例,被存取的数据,所关联的名字就是它的索引(下标)。

在 JavaScript 中,对象是关联数组。而所谓的「数组 Array」是索引数组。

所以,在 JavaScript 中:

所有连续的数据添加一个连续的索引,称为「数组」;

所有不连续的数据添加一个唯一的 key 值,称为「对象」;

数据结构解决什么问题?

因为计算机底层只接受「字节」和「位」等数据值,数据结构中「值」都是通过计算得来的。

相关的运算结果都会以「值」来体现出来,所以就抽象出来了「结构体」和「对象」这种东西。

我们编程需要处理数据的结构,整理数据的结构。而计算机的底层要解析我们提供的数据结构。方便了我们的管理和维护。

封装和解构

所谓对象,就是对数据的封装;

所谓解构,就是从封装的对象中,提取数据;

之前文章提到过 ES6 对象的解构赋值 ,里面记录了关于解构赋值的用法和模式,从一个结构中把那些「值数据」取出来,就叫解构。

对于之前的文章需要补充一些:在解构中,关联数组只能解构到关联数组,索引数组只能解构到索引数组。

也就是说:

let [x,y] = [1,2];console.log(x,y);//  1,2let {a,b} = {a:1,b:2};console.log(a,b);// 1,2

但是:

let a=1,b=2;let [c,d] = {a,b};

索引数组和关联数组之间不能解构,因为查找值的方式不一样。索引数组是按「索引」去查找值,并赋值。而关联数组是按「key」去查找值。所以,导致赋值不成功。

let a=1,b=2;let [c,d]= Object.values({a,b});

不过,我们可以统一数据格式,将「对象成员」的列举改成「对象成员值」的列举,按「索引」去获取值,就可以了。


内容参考于:极客时间《JavaScript 核心原理解析》

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34489.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月11日 上午11:18
下一篇 2024年4月11日 上午11:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注