鱼C论坛

 找回密码
 立即注册
查看: 3078|回复: 6

[已解决]关于JS中数组筛除重复元素的判定语法问题

[复制链接]
发表于 2020-9-14 17:14:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 sYMMetrY 于 2020-9-14 17:14 编辑

这两个数组只是把标红的两个元素换一下位置就会将错误的结果纠正过来,这是什么原因导致的呢?只能猜测是判断语句那里出了问题,但是不知道是不是,也不知道为什么?请大家多多指教
微信图片_20200914170949.png 微信图片_20200914170957.png


最佳答案
2020-9-14 17:30:53
本帖最后由 kogawananari 于 2020-9-15 00:41 编辑

JavaScript的 in关键字 判断的是  key in object(包括object.prototype)
而你想判断的是 value 在不在 array里  还是得用 .indexOf方法才行
由于会遍历查找prototype的原因导致in的性能浪费
所以不要用这个in关键字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-14 17:29:00 | 显示全部楼层
17行改成 if(arrNew.indexOf(element)!==-1)

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
sYMMetrY + 2 + 2 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 17:30:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 kogawananari 于 2020-9-15 00:41 编辑

JavaScript的 in关键字 判断的是  key in object(包括object.prototype)
而你想判断的是 value 在不在 array里  还是得用 .indexOf方法才行
由于会遍历查找prototype的原因导致in的性能浪费
所以不要用这个in关键字

评分

参与人数 1荣誉 +3 鱼币 +5 贡献 +3 收起 理由
sYMMetrY + 3 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 17:41:06 | 显示全部楼层
写个最简单的去除 (Set除外)
let arr = [1,2,3,2,1,3,4,2,5]
let arrnew = arr.reduce((a,v)=>((a.indexOf(v)==-1)&&a.push(v),a),[])
console.log(arrnew)

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
sYMMetrY + 2 + 2 + 2 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-9-14 21:45:43 | 显示全部楼层
kogawananari 发表于 2020-9-14 17:30
JavaScript的 in关键字 几乎是废掉的 参考【严格模式】

能否说的再详细一些?我看了严格模式和非严格模式,并没有那里能看出在这里in出了什么问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-14 23:22:31 | 显示全部楼层
本帖最后由 kogawananari 于 2020-9-14 23:35 编辑
sYMMetrY 发表于 2020-9-14 21:45
能否说的再详细一些?我看了严格模式和非严格模式,并没有那里能看出在这里in出了什么问题


emmm 那可能是我记错了
反正in别用  哪怕是for in 也完全可以用for of代替

我再编辑一下草
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-15 21:18:57 | 显示全部楼层
kogawananari 发表于 2020-9-14 23:22
emmm 那可能是我记错了
反正in别用  哪怕是for in 也完全可以用for of代替

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 15:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表