JS 数组去重 数组过滤重复
程序开发
2023-09-04 07:39:29
JS 数组去重 数组过滤重复
JS 数组去重 数组过滤重复
function array_deduplication(arr) {return arr.filter(function (c, index) {return arr.indexOf(c) === index;});
}
理论概念说明:
arr.filter
定义:
filter()
方法会创建一个新数组, 其包含通过所提供函数内部实现的逻辑过滤的所有元素。
说人话:
就是在 filter()
方法的回调函数中可以写一些过滤逻辑,逻辑为真的时候,当前元素将会返回,否则会被丢弃,这样就产生了一个新的数组,作为 filter()
的返回值。
数组去重解释:
文字解释:
- 不需去重数组
假设数组值为 [1,2,3,4]
遍历当前数组,元素1所在的位置为0、元素2的位置为1 - 需要去重数组
假设数组值为[1,1,2,3,4]
遍历当前数组,第一个元素1所在的位置为0、第二个元素1所在的位置为1、元素2的位置为2
如果在数组中通过 indexOf
查找某个元素,获取到元素的下标和当前遍历的下标正好相等,则说明改元素是第一个出现的,如果不相同则说明是重复的。
图表解释:
如果你还在糊涂,请看下面表格
当遍历到第二个1时,通过indexOf
获取到的下标是第一次出现1时的0,但是当前遍历的索引下标为1。两个值不相同则说明1不是第一次出现,因此是我们要过滤掉的对象。
因此通过该方法就可以去重数组
[1]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
[2]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
标签:
上一篇:
NodeJS环境安装
下一篇:
相关文章
-
无相关信息