Where do I belong
数组排序并找出元素索引
我身在何处?
先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。
举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。
同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2。
function where(arr, num) {
// 请把你的代码写在这里
arr.push(num);
arr.sort();
var arr1=[];
arr1=arguments[0];
arr1.sort(function(a,b){
return a-b;
});
if(num>arr1[arr1.length-1])
return arr1.length;
for(var i=0;i=num){
return i;
}
}
}
where([40, 60], 50);
Caesars Cipher
凯撒密码
(让上帝的归上帝,凯撒的归凯撒)
下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。
移位密码也就是密码中的字母会按照指定的数量来做移位。
一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。
写一个ROT13函数,实现输入加密字符串,输出解密字符串。
所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。
function rot13(str) { // LBH QVQ VG!
// 请把你的代码写在这里
var newarr=[];
for(var i=0;i90){
newarr.push(str.charAt(i));
}else if(str.charCodeAt(i)>77){
newarr.push(String.fromCharCode(str.charCodeAt(i)-13));
}else{
newarr.push(String.fromCharCode(str.charCodeAt(i)+13));
}
}
return newarr.join("");
// return str;
}
rot13("SERR PBQR PNZC"); // 你可以修改这一行来测试你的代码
Diff Two Arrays
比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
arr1=arr1.concat(arr2);
var tmp = [];
for(var i in arr1){
//该元素在tmp内部不存在才允许追加
if(tmp.indexOf(arr1[i])==-1){
tmp.push(arr1[i]);
}
}
newArr=arr1.filter(function(ele,index,array){
for(var j in tmp){
if(tmp.indexOf(tmp[i])==-1){
newArr=tmp.slice(i,i+1);
}
}
});
return newArr;