资讯专栏INFORMATION COLUMN

【译】JS基础算法脚本:类数组(arguments)去重

mrcode / 3475人阅读

摘要:参数用来测试数组的每个元素的函数。调用时使用参数。返回表示保留该元素通过测试,则不保留。执行时的用于的值。那些没有通过测试的元素会被跳过,不会被包含在新数组中。有其他好的方法或思路的道友,不妨在沙发区神交一番。

需求

给出一个类数组,删除要求的重复数据,返回新数组

destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1]
destroyer([2, 3, 2, 3], 2, 3) should return []
destroyer(["tree", "hamburger", 53], "tree", 53) should return ["hamburger"]
思路1

1.类数组转化成数组
2.双重循环比较两个数组的元素
3.删除重复数据
4.剔除非Boolean数据

function destroyer(arr) {
    var args = Array.from(arguments).slice(1);
    for(var i=0; i
思路2

1.类数组转化成数组
2.fiter()方法返回不重复数组

function destroyer(arr) {
    var args = Array.from(arguments).slice(1);
    return arr.filter((val) => !args.includes(val));
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
相关
arguments(类数组转换成数组),以下方法都可以
let args = Array.prototype.slice.call(arguments); 
let args = [].slice.call(arguments);
let args = Array.from(arguments);
let args = [...arguments];    
arr.filter(callback[, thisArg]) 

filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

参数:

callback
用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。返回true表示保留该元素(通过测试),false则不保留。

thisArg
可选。执行 callback 时的用于 this 的值。

返回值
一个新的通过测试的元素的集合的数组

描述:

filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或 等价于 true 的值 的元素创建一个新数组。callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。

有其他好的方法或思路的道友,不妨在沙发区神交一番。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87312.html

相关文章

  • JS基础算法脚本:查找数组每项的最大值

    摘要:方法对累加器和数组中的每个元素从左到右应用一个函数,将其减少为单个值。有其他好的方法或思路的道友,不妨在沙发区神交一番。对的方法有较深理解的的请指点下,这里有点蒙 需求 给出一个2维数组,查找每项子数组中的最大值,返回包含最大值的新数组 largestOfFour([[13, 27, 18, 26], [4, 5, 1, 3], [32, 35, 37, 39], [1000, 100...

    Amio 评论0 收藏0
  • JavasScript重难点知识

    摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...

    forsigner 评论0 收藏0
  • JS基础算法脚本:反转字符串

    摘要:需求反转提供的字符串,返回字符串思路分割重排序重组相关函数将字符串分割成一个包含子字符的数组,使用指定的分割字符串来确定分割位置反转数组中的元素不会改变数组,默认为将一个数组或者类数组中的的所有元素拼接到一个字符串有其他好的方法或思路的道友 需求 反转提供的字符串,返回字符串 reverseString(hello) should become olleh. 思路 分割 重排序 重组...

    kamushin233 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    Jonathan Shieber 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    SHERlocked93 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<