资讯专栏INFORMATION COLUMN

[codewar]Filter unused digits 过滤没有用过的数字

wow_worktile / 2106人阅读

摘要:知乎上这篇写的很好大概能概括这几个函数了大牛的解法比较实际的写法

Description:

Given few numbers, you need to print out the digits that are not being used.

Example:
unusedDigits(12, 34, 56, 78) // "09"
unusedDigits(2015, 8, 26) // "3479"
Note:

Result string should be sorted
The test case won"t pass Integer with leading zero

我最初的解法:

function unusedDigits() {
    var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var arguArray = arguments;
    var s = "";
    for (var i = 0; i < arguArray.length; i++) {
        var lalla = arguArray[i].toString();
        s += lalla;
    }
    for (var j = 0; j < s.length; j++) {
        for (var k = 0; k < arr.length; k++) {
            if (s.charAt(j) == arr[k].toString()) {
                arr.splice(k, 1);
            }
        }
    }
    return arr.join("");
}
unusedDigits(12, 34, 56, 78);

然后发现数组转字符串没有这么麻烦,用join("")就可以搞定,于是优化了一下变成

function unusedDigits() {
    var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var s=[].join.call(arguments,"");
    for (var j = 0; j < s.length; j++) {
        for (var k = 0; k < arr.length; k++) {
            if (s.charAt(j) == arr[k].toString()) {
                arr.splice(k, 1);
            }
        }
    }
    return arr.join("");
}
unusedDigits(12, 34, 56, 78);

然后我在其他人的解法里看到有好多map, forEach, filter, reduce等函数,之前一直也没好好整理一下,现在借此机会整理一下,方便以后回顾。
知乎上这篇写的很好:https://www.zhihu.com/question/24927450
大概能概括这几个函数了

大牛的解法:

function unusedDigits(...args){ return "0123456789".replace(new RegExp("["+args.join("")+"]","g"), "")}

比较实际的写法:

function unusedDigits() {
    return [].reduce.call(arguments, function (left, num) {
        (num + "").split("").map(function (digit) {
            left = left.replace(digit, "");
        });
        return left;
    }, "0123456789");
}

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

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

相关文章

  • codewars上的一道题目学习ES6的Map

    摘要:我对数据结构的学习最近在上做了一道题目,嗯,我这个渣渣没有做出来,然后看了别人的解决方案,是时候学习一下的了。。。。。读取对应的键值,如果找不到返回键是函数返回一个布尔值,表示某个键是否在数据结构中。 我对ES6数据结构Map的学习 最近在CodeWars上做了一道题目,嗯,我这个渣渣没有做出来,然后看了别人的解决方案,Map??? 是时候学习一下ES6的Map了。。。。。 以下是原题...

    IamDLY 评论0 收藏0
  • 前端计划——Codewars的一些JavaScript题集

    摘要:解题思路使用正则表达式地址转问题描述把输入的地址转换为格式比如解题思路使用位移运算符方法方法找零钱问题问题描述电影院票价为,而观众手中的美元面值有,。解题思路为每个面值的美元设定初始数量,然后开始对每个数组值遍历,根据不同面值设定不同规则。 关于Codewars:这是一个用于编程练习的网站,支持多种编程语言。网站首次注册需要完成两道题目,之后进入系统,类似于打怪升级。通过完成题目来实现...

    jayce 评论0 收藏0
  • 刷题——Codewars Js题目(持续更新)

    摘要:发现一个很好的练习做题网站都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。 发现一个很好的练习做题网站 Codewars 都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。 1. 将首字母放到后面并加上ay pigIt(This is my string)转换成:pigIt(hisTay siay ymay tringsay) mine function...

    toddmark 评论0 收藏0
  • 前端每日实战:164# 视频演示如何用原生 JS 创作一个数独训练小游戏(内含 4 个视频)

    摘要:第部分第部分第部分第部分源代码下载每日前端实战系列的全部源代码请从下载代码解读解数独的一项基本功是能迅速判断一行一列或一个九宫格中缺少哪几个数字,本项目就是一个训练判断九宫格中缺少哪个数字的小游戏。 showImg(https://segmentfault.com/img/bVbkNGa?w=400&h=300); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预...

    Heier 评论0 收藏0
  • 前端每日实战:164# 视频演示如何用原生 JS 创作一个数独训练小游戏(内含 4 个视频)

    摘要:第部分第部分第部分第部分源代码下载每日前端实战系列的全部源代码请从下载代码解读解数独的一项基本功是能迅速判断一行一列或一个九宫格中缺少哪几个数字,本项目就是一个训练判断九宫格中缺少哪个数字的小游戏。 showImg(https://segmentfault.com/img/bVbkNGa?w=400&h=300); 效果预览 按下右侧的点击预览按钮可以在当前页面预览,点击链接可以全屏预...

    OBKoro1 评论0 收藏0

发表评论

0条评论

wow_worktile

|高级讲师

TA的文章

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