资讯专栏INFORMATION COLUMN

刷题——Codewars Js题目(持续更新)

toddmark / 2451人阅读

摘要:发现一个很好的练习做题网站都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。

发现一个很好的练习做题网站 Codewars

都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。

1. 将首字母放到后面并加上ay

pigIt("This is my string")转换成:pigIt("hisTay siay ymay tringsay")

mine

function pigIt(str){
    var _str = [];
    str.split(" ").forEach((_value) => _str.push(_value.slice(1)+_value.slice(0,1)+"ay"));
    return _str.join(" ");
}

others

function pigIt(str){
    return str.replace(/(w)(w*)(s|$)/g, "$2$1ay$3")
}

2. 数组变成字符串并且最后一个用&连接

list([{name: "Bart"},{name: "Lisa"},{name: "Maggie"},{name: "Homer"},{name: "Marge"}])转换成:"Bart, Lisa, Maggie, Homer & Marge"

mine

function list(names){
    if(names.length == 0)return "";
    let allname = [];
    names.forEach(function(_value){
        allname.push(_value.name);
    });
    let list = allname.join(",");
    var _index = list.lastIndexOf(",");
    list = list.replace(/,/g,function(a,b){
        return b == _index ? " & " : ", "
    });
    return list;
}

others

function list(names) {
    var xs = names.map(p => p.name)
    var x = xs.pop()
    return xs.length ? xs.join(", ") + " & " + x : x || ""
}

3. 将0移到数组后面且其他值在原来位置不排序

["a",0,"b",null,"c",0,"d",1,false,1,0,3,[],1,9,{},9,0]转换成:["a","b",null,"c","d",1,false,1,3,[],1,9,{},9,0,0,0,0]

mine

var moveZeros = function (arr) {
    let my_arr = arr.concat();
    let count = 0;
    arr.forEach(function(_value,_index){
        if(_value === 0){
            my_arr.push(...my_arr.splice(_index-count,1));
            count++;
        }
    });
    return my_arr;
}

others

var moveZeros = function (arr) {
  return arr.filter(function(x) {return x !== 0}).concat(arr.filter(function(x) {return x === 0;}));
}

4. 数组内奇数排序,偶数位置不变

[5, 3, 2, 8, 1, 4]转换成:[1, 3, 2, 8, 5, 4]

mine

function sortArray(arr) {
    var myarr = [],
        myindex = [];
    arr.map(function(a,b){
        if(a%2 !== 0){
            console.log(a)
            myarr.push(a);
            myindex.push(b);
        }
    });
    myarr.sort((a,b) => a - b);
    myindex.map(function(a,b){
        arr[a] = myarr[b];
    });
    return arr;
}

others

function sortArray(array) {
    const odd = array.filter((x) => x % 2).sort((a,b) => a - b);
    return array.map((x) => x % 2 ? odd.shift() : x);
}

5. 字符串里面的数字排序

"is2 Thi1s T4est 3a"转换成:"Thi1s is2 3a T4est"

mine

function order(words){
    var arr = words.split(" ");
    arr.sort(function(a,b){
        return /d/.exec(a)[0] - /d/.exec(b)[0];
    });
    return arr.join(" ");
}

others

function order(words){
    return words.split(" ").sort(function(a, b){
        return a.match(/d/) - b.match(/d/);
    }).join(" ");
}

6. 拆分数字并相乘直至个位数

给出参数39拆分:3*9 = 27, 2*7 = 14, 1*4=4(返回执行次数:三次)

mine

function persistence(num) {
    var count = 0;
    var Count = function(_num){
        var total = 1;
        if(_num.toString().length == 1){
            return count;
        }
        total = _num.toString().split("").map((a) => total = total * a).pop();
        count++;
        return Count(total);
    }
    return Count(num);
}

others

const persistence = num => {
    return `${num}`.length > 1 ? 1 + persistence(`${num}`.split("").reduce((a, b) => (a * b)))
    : 0;
}

7. 匹配密码

六位以上密码,至少一个数字、一个大写字母、一个小写字母

mine

function validate(password) {
    return /^(?=.*d)(?=.*[a-z])(?=.*[A-Z])w{6,}$/.test(password);
}

others

function validate(password) {
  return  /^[A-Za-z0-9]{6,}$/.test(password) &&
          /[A-Z]+/           .test(password) &&
          /[a-z]+/           .test(password) &&
          /[0-9]+/           .test(password) ;
}

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

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

相关文章

  • 刷题js的输入问题总结

    摘要:牛客网其中只支持单行输入赛码网注意,如果一行超过个字符,会被强制分行的,因此如果题目明确说明该行超过字符,请自行拼接当然,我们尽量不出这种题目。 刷题时js的输入问题总结大部分来自于 http://www.cnblogs.com/floor/... 感谢解决燃眉之急 还有小部分是自己的整理和思考 目前常见平台还不太支持ES6写法 推荐js刷题平台 https://www.codewa...

    Hancock_Xu 评论0 收藏0
  • 用 Javascript 实现一个简易 BrainF**k 解释器

    摘要:当前指针值减一。当前指令的位置。伪内存块的值,用一个数组表示,默认一个。 原文地址:http://xcoder.in/2014/10/08/brainf**k/   首先祝贺自己在 CodeWars 升级到 3 Kyu,以及感谢 @Bolt_白衣苍狗 童鞋让我知道有 CodeWars 这么个好玩的东西。   虽然里面水题居多,不过在上班比较空闲的档口 #带薪刷题# 的感觉还是蛮不错...

    littleGrow 评论0 收藏0
  • 在线编程练习实践网站

    摘要:在此收集一些自己遇到的一些在线练习的网站,当然大部分是。建议边学习边编程,学习编程是不能光看不实践的。国外的一个练习网站,有,也有,每种语言都有自己的道场,每个用户都有不同的等级,刷题提高等级,也可以插卡别人优秀的解决方案。 在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的一些在线练习的网站,当然大...

    huhud 评论0 收藏0
  • 在线编程练习实践网站

    摘要:在此收集一些自己遇到的一些在线练习的网站,当然大部分是。建议边学习边编程,学习编程是不能光看不实践的。国外的一个练习网站,有,也有,每种语言都有自己的道场,每个用户都有不同的等级,刷题提高等级,也可以插卡别人优秀的解决方案。 在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的一些在线练习的网站,当然大...

    xiaotianyi 评论0 收藏0

发表评论

0条评论

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