一:翻转字符串
function reverseString(str){
var arr=str.split("");//字符串转换成数组
arr.reverse();//翻转数组
return arr.join("")//翻转后数组转换诚字符串
}
二、计算一个整数的阶乘
function factorialize(num){
var result=1;
for(var i=1;i<=num;i++){
result*=num
}
return result;
}
三、检查回文字符串
function palindrome(str){
newStr=str.toLowerCase().replace(/[W_]/g/,"");//先把字符串小写,然后用“”替换调字符串中的标点符号及下划线
var arr=newStr.split("");//字符串转数组
arr.reverse();//翻转数组
var str=arr.join("");//翻转后的数组转字符串
if(str===newStr){
return true;
}else{
return false;
}
}
四、找出一句话中最长的单词。并返回它的长度
function findLongestWord(str){
var arr=str.split(" ");//字符串转换成数组
var list=[];//定义一个数组,接收每个单词的长度
for(var i=0;i<arr.length;i++){
list.push(arr[i].length);//循环数组,把每个单词的长度添加到空数组中
}
list.sort(function(a,b){//对list进行排序,从小到大
return a-b;
});
str=list[list.length-1];
return str;
}
五、过滤一个数组中的假值false,null,0,"",undefined,NAN
function bouncer(arr){
function isBe(element){//过滤函数
return Boolean(element)===true;
}
return arr.filter(isBe);
}
六、把指定的字符串翻译成 pig latin。
把一个英文单词的第一个辅音或辅音丛移到词尾(元音字母(aeiou)之前的字母全部后移),然后加上后缀 "ay"。
如果单词以元音开始,你只需要在词尾添加 "way" 就可以了。
function translate(str) {
yuanyin=['a','e','i','o','u'];
if((yuanyin.indexOf(str[0]))!=-1){
return str+'way';
}
while((yuanyin.indexOf(str[0]))==-1){
str=str.substr(1)+str.substr(0,1);
}
return str+'ay';
}
translate("glove");
七、从传递进来的字母序列中找到缺失的字母并返回它。如果所有字母都在序列中,返回 undefined。
function fearNotLetter(str) {
arr=[];
for(var i=0;i<str.length;i++){
num=str.charCodeAt(i);//字符转数字
arr.push(num);
}
for(var j=0;j<arr.length-1;j++){
if(arr[j+1]-arr[j]!==1){
numLose=arr[j]+1;
return String.fromCharCode(numLose);//数字转字符串
}
}
return undefined;
}
fearNotLetter("abce");
八、检查一个值是否是基本布尔类型,并返回 true 或 false。基本布尔类型即 true 和 false。
function boo(bool) {
if(bool===true||bool===false){
return true;
}
return false;
}
boo(null);
九、写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。
function unite(arr1, arr2, arr3) {
l=arguments.length;
arr=[];
temp=[];
//先把传入的参数全部合并成一个数组。
for(var i=0;i<l;i++){
arr=arr.concat(arguments[i]);
}
//合并后的数组,去除重复元素,自留一个。思路:定义一个空数组,把原数组中的元素不断加入空数组中,如果元素已经存在,就不在添加。
for(var j=0;j<arr.length;j++){
if(temp.indexOf(arr[j])==-1){
temp.push(arr[j]);
}
}
return temp;
}
unite([1, 3, 2], [5, 2, 1, 4], [2, 1]);
十、将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。
function spinalCase(str) {
// "It's such a fine line between stupid, and clever."
// --David St. Hubbins
str=str.replace(/([A-Z]+)/g,' $1');//在大写字母前加空格
str=str.replace(/s+/g,'-');//用-代替空格
str=str.replace(/_+/g,"");//去除下划线_
arr=str.split("-");
if(arr[0]==""){
arr.shift();
}
for(var i=0;i<arr.length;i++){
arr[i]=arr[i][0].toLowerCase()+arr[i].substr(1);
}
return arr.join('-');
}
spinalCase('The_Andy_Griffith_Show'); " thisIsSpinalTap"