js数组遍历是什么意思

细说JS遍历对象属性的N种方法

说实话,刚开始学习JS的时候,我对这些遍历方法是很困惑的。
Object.keys是最直观的,但是使用它后我欺骗了自己好几次,发现它并没有遍历Symbol属性。
我曾经编写过一个工具库来处理其他人发送给我的配置对象。
Symbol 定义的私有属性被秘密使用,在使用 Object.keys 时发现丢失。
我最终使用 Reflect.ownKeys 找到了它们。

Object.values和Object.entries其实更具体一些。
Values 对于数据处理特别方便,因为它们直接提供所有可枚举值,而无需键名。
例如,在处理用户表时,我使用Object.values直接获取所有分数,然后对其进行排序,这比在循环中手动拆分键和值要高效得多。
这些项目更有趣。
键值对直接以数组形式提供,特别适合数据转换。
我之前重组了以前的项目,使用项目从旧系统重建属性映射关系。
用一行代码完成:
javascript const oldToNewMap = { '名称': '用户名', '电子邮件': '用户电子邮件', '年龄': '用户年龄' };
const 映射 = Object.entries(oldToNewMap).reduce((acc, [key, value]) => { acc[键] = 值; 返回帐户; }, {});
for...in 循环有点粗糙。
就在那时我陷入了组件库的陷阱。
我在迭代组件 props 时使用了 for...in ,发现原型链中的所有属性都被遍历了。
幸好我及时发现了。
否则,你的自定义eventHandler也会被遍历并导致混乱。
现在尝试编写一些代码。
选择 Object.keys 来探索它自己的属性。
如果您需要所有属性(包括 Symbol),请使用 Reflect.ownKeys。
对于特殊场景,请考虑值/项目:
有趣的是 Object.getOwnPropertyNames。
这尤其“暴力”。
您甚至可以找到许多房产。
我有一个使用ES5 语法的旧项目,我使用这个方法来收集所有私有属性(以__开头的属性)。
但现在 ES6 已经普及,符号属性和私有类字段成为焦点。
我最近编写了一个拦截器工具,可以使用 Reflect.ownKeys 过滤掉所有符号属性。
现在很少有图书馆公开使用 Symbol 作为私有财产。

您选择哪种方法完全取决于您的需求。
如果您希望与旧代码兼容,请选择 Object.keys。
如果您想要完整的属性,请选择 Reflect.ownKeys。
使用更优雅的值/项目进行数据处理。
不过说实话,我这些天写新项目的时候基本上就只用Object.entries。
我觉得我已经涵盖了9 0%的剧本,而且写得非常直观。
如果你的数据结构很清晰,单行 items.forEach 是可以的,但是以多种方式分割它就太麻烦了。

js中数组去重的方法 js数组去重的5种方法

顺便说一句,JS 数组去重的方法确实有很多种。
我在做项目时已经尝试过几种方法。
例如,双for循环加上include方法。
当我第一次使用这个方法时,我感觉它相当复杂。
它需要两个循环级别,并且内部循环还使用包含进行控制。
写起来相当费劲。

我记得有一次我负责一个关于用户数据的项目。
数据量相当大。
我用这个方法来删除重复项。
一执行,CPU就直接爆炸了。
它被称为纸。
接下来,我继续讨论 ES6 Set 数据结构。
这个东西删除重复的速度非常快,而且代码很简单。
我可以直接将数组转换为集合,然后反之亦然,重复项将自动消失。

还有一个使用数组的lastIndexOf方法。
我印象中这个方法是用在某电商平台的产品分类中。
由于产品分类可能重复,因此应使用此方法去除重复。
我当时不明白为什么它会起作用。
后来查资料发现这个方法是根据数组中元素的位置来判断的,还是比较巧妙的。

为了对数组中的对象进行重复数据删除,我尝试使用 JSON.stringify 方法。
这个方法非常有趣,因为直接比较对象是不可能的,必须转换为字符串。
但有一个问题是,如果对象中属性的顺序不同,即使内容相同,转换后的字符串也会不同,所以这种方法可能有点极端。

最后一种方法是对数组排序后比较相邻元素。
我记得在处理用户评论数据集时使用了这种方法。
排序后,比较相邻元素。
这种方法在去除重复项方面相当准确。
但缺点是排序本身需要时间。
如果数据量特别大,可能会有点慢。

总的来说,每种方法都有其适用场景、优缺点。
在实际应用中,必须根据具体需求和数据特点进行选择。
我自己没运行过。
我记得数据在X左右,但我建议你检查一下。

js怎么循环一个正整数的数据

在JS中定义数组非常简单,就这样写:var arr = [];。
然后,如果你想向其中添加数字,请使用 for 循环。
例如,要加1 到1 0,循环方法是:for(var i=0; i<1>每次循环时,使用 arr.push(i);输入数字。
老实说,这个补充就够了。

但是说到遍历,更常见的做法是使用for循环直接遍历数组中的所有内容。
例如有一个数组arr。
如果你想把每个数除以2 ,可以这样写:for(var i=0; i。
看代码,这样写: javascript var arr = 新数组(1 3 .5 , 3 , 4 , 5 , 6 ); for(var i=0; i 运行后,会出现一个弹出窗口,告诉您数组中的每个数字都已减半。
1 3 .5 变为 6 .7 5 ,3 变为 1 .5 ,依此类推。