Seek and Destroy

这两天在别人推荐发现一个学习前端的好地方。在群里面有人问了这个题说卡了一天,我就来分享一下我的思路。

题目

金克斯的迫击炮!

实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。

destroyer([1, 2, 3, 1, 2, 3], 2, 3) 应该返回 [1, 1] .

destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3) 应该返回 [1, 5, 1] .

destroyer([3, 5, 1, 2, 2], 2, 3, 5) 应该返回 [1] .

destroyer([2, 3, 2, 3], 2, 3) 应该返回 [] .

destroyer(["tree", "hamburger", 53], "tree", 53) 应该返回 ["hamburger"] .


提示

Arguments object


思路

函数中包括了不确定数量的参数,所以就需要用到arguments。

在MDN上的描述:

arguments 是一个类数组对象。代表传给一个function的参数列表。你可以在函数内部通过使用 arguments 对象来获取函数的所有参数。这个对象为传递给函数的每个参数建立一个条目,条目的索引号从 0 开始。

可见,arguments可以看作传入参数的一个列表。arguments是一个类数组意味着不是真正的数组。

为了便于参数的使用,将所有应该待摧毁的值全部存入一个数组。在循环中添加条件arguments[i]为空的时候跳出循环。

   var arrDel=[];
   for(var i=1;arguments[i];i++){       arrDel.push(arguments[i]);
   }

拿到了存有所有代摧毁的值的数组,接下来使用filter执行一点微小的去重操作

   return arr.filter(function(val){
     return arrDel.indexOf(val)<0;
   });

组合

function destroyer(arr) {var arrDel=[];for(var i=1;arguments[i];i++){arrDel.push(arguments[i]);}return arr.filter(function(val){return arrDel.indexOf(val)<0;});
}

总结:没有总结~~欢迎大家来FCC找我玩 : )

posted on 2016-09-03 02:07 XhhDream 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/XhhDream/p/5836117.html

Seek and Destroy相关推荐

  1. JS:#Seek and Destroy(摧毁数组)

    摧毁数组 金克斯的迫击炮! 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 当你完成不了挑战的时候,记得开大招'Read-Search-Ask'. 这是一些 ...

  2. 最佳适应算法和最坏适应算法_算法:好,坏和丑陋

    最佳适应算法和最坏适应算法 by Evaristo Caraballo 通过Evaristo Caraballo 算法:好,坏和丑陋 (Algorithms: The Good, The Bad an ...

  3. 数据库系统知识点总结与英文课件翻译

    数据库系统 lec1 数据库系统概述 1.什么是数据库 P3 Data 数据: facts and statistics collected together for reference or ana ...

  4. Introduce MBT tool robogenerator

    What is Tool Robogenerator? Test Data generator for `Robot Framework <http://www.robotframework.o ...

  5. freeCodeCamp算法

    /* Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. 你的结果必须得是一个字符串 */ function re ...

  6. 将军与英雄服务器维护,服务器维护了⊙_⊙?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 条件 @正义味方 ASSIGNMENTS There is an assignment for each character class: Infantr ...

  7. 7 Billion Humans通关攻略二

    前文概述 这个游戏是锻炼逻辑思维的程序模拟游戏,是拖动按钮来做program,继而解决其中的问题.分为4个部分:绿.蓝.橙.红.每个部分都有10多个题目,难度依次递增. 开始攻略 Content Cr ...

  8. ALL ABOUT .net

    From:http://reversengineering.wordpress.com/ ALL ABOUT .net --.NET Resources A paper on resources an ...

  9. 每日英语——华晨宇《斗牛》

    点击即可去看其它文章 目录章 华晨宇--<与火星的孩子对话> 华晨宇--<斗牛> 华晨宇--<神树> What's up, guys! The second art ...

  10. Freecodecamp 刷题记录——前端基础算法

    Basic Front End Development Projects Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化 ...

最新文章

  1. 16、设计模式-行为型模式-命令模式
  2. IIR+双向滤波实现系统零相位相移_MATLAB仿真
  3. 把图片存成视频 python
  4. leetcode —— 33. 搜索旋转排序数组
  5. 国产 Java 代码补全神器,aiXcoder 2.0 实测
  6. 期中HTML代码及技术博客
  7. microsoft visual c++全家桶_“网蓝”盒子咖啡新品来袭!顺德第①桶MINI冰摇咖啡,可以背着逛街...
  8. 如何查看android虚拟机的目录及文件
  9. IOS 学习笔记(2) 视图UINavigationController
  10. JDK11下载和安装(macos)
  11. selenium下载安装
  12. Hibernate pojo对象的三种状态
  13. android版 git客户端下载,Pocket Git 是 Android 手机上一个 Git 客户端工具
  14. calico更换ip地址池-k8s
  15. android系统铃声选择画面源码,gogo体育体验官网-官网首页
  16. 2021正睿csp7连day2
  17. 关于减肥的科学理解和准则
  18. android开发集成flash,Android开发之Adobe flash操作工具类
  19. 程序员快速成长的核心原则
  20. C#根据IP地址查询所属地区(调用免费的IP查询接口)

热门文章

  1. kafka 安装,使用教程
  2. YII 框架相关收藏
  3. jira 6.X或confluence5.X linux/centos/ubuntu下设置开启启动
  4. 阶段3 2.Spring_09.JdbcTemplate的基本使用_2 JdbcTemplate的概述和入门
  5. win10远程桌面配置
  6. 【LeetCode】Python之旅 1-2
  7. linux中最常用命令
  8. Spring mvc文件下载
  9. 深入JavaScript之获取cookie以及删除cookie
  10. 【整理操作】MQTT简单使用学习