摘要:发现一个很好的练习做题网站都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。
发现一个很好的练习做题网站 Codewars
都是自己做过的,先放自己的答案,再放自己觉得不错的其他回答。
1. 将首字母放到后面并加上aypigIt("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的输入问题总结大部分来自于 http://www.cnblogs.com/floor/... 感谢解决燃眉之急 还有小部分是自己的整理和思考 目前常见平台还不太支持ES6写法 推荐js刷题平台 https://www.codewa...
摘要:当前指针值减一。当前指令的位置。伪内存块的值,用一个数组表示,默认一个。 原文地址:http://xcoder.in/2014/10/08/brainf**k/ 首先祝贺自己在 CodeWars 升级到 3 Kyu,以及感谢 @Bolt_白衣苍狗 童鞋让我知道有 CodeWars 这么个好玩的东西。 虽然里面水题居多,不过在上班比较空闲的档口 #带薪刷题# 的感觉还是蛮不错...
摘要:在此收集一些自己遇到的一些在线练习的网站,当然大部分是。建议边学习边编程,学习编程是不能光看不实践的。国外的一个练习网站,有,也有,每种语言都有自己的道场,每个用户都有不同的等级,刷题提高等级,也可以插卡别人优秀的解决方案。 在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的一些在线练习的网站,当然大...
摘要:在此收集一些自己遇到的一些在线练习的网站,当然大部分是。建议边学习边编程,学习编程是不能光看不实践的。国外的一个练习网站,有,也有,每种语言都有自己的道场,每个用户都有不同的等级,刷题提高等级,也可以插卡别人优秀的解决方案。 在学习的过程中会发现很多知识点如果不在工作中运用或者手写带验证的话,很容易忘记。任何技能的掌握都是需要不断练习的。在此收集一些自己遇到的一些在线练习的网站,当然大...
阅读 3388·2021-11-23 09:51
阅读 3912·2021-09-22 15:35
阅读 3896·2021-09-22 10:02
阅读 3192·2021-08-30 09:49
阅读 821·2021-08-05 10:01
阅读 3675·2019-08-30 15:54
阅读 1900·2019-08-30 15:53
阅读 3813·2019-08-29 16:27