The foundation of computer programs.
-
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1 -
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。 -
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5 //不用返回的话直接调用就可以了 -
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7 -
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5] b:[1,2,3,4,5,6,7] -
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5] b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift
var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push -
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5] b:[3,4,5]
-
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" -
var b = "1|2|3|4|5";
var a = b.split("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5" -
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1] -
var a = [1,2,3,4,5];
var b = a.map(function(val){return val * 4;}); //a:[1,2,3,4,5] b:[4,8,12,16,20] -
var a = [1,2,3,4,5];
var b = a.reduce(function(pre,cur){return pre+cur;}); //a:[1,2,3,4,5] b:15 -
var a = [1,2,3,4,5];
var b = a.filter(function(val){return val==3;}); //a:[1,2,3,4,5] b:[3] -
var a = [4,2,1,5,3];
a.sort(function(n,m){return n-m;}); //a:[1,2,3,4,5]
/*
ROT13函数,实现输入加密字符串,输出解密字符串。
字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推
所有的字母都是大写,遇到任何非字母形式的字符(例如:空格,标点符号)跳过。
*/
function rot13(str) {
var arr = [];
for(var i=0;i<str.length;i++){
arr.push(str.charCodeAt(i));
}
function myMap(val) {
if(val >= 65 && val <= 77){
return val +13;
}
if(val > 77 && val <= 90){
return val-13;
}
return val;
}
var newArr = arr.map(myMap);
var newStr = '';
for(var j=0;j<newArr.length; j++){
newStr += String.fromCharCode(newArr[j]);
}
return newStr;
}
rot13("SERR PBQR PNZC"); // 应该解码为 "FREE CODE CAMP"
rot13("SERR CVMMN!"); // 应该解码为 "FREE PIZZA!"
rot13("SERR YBIR?"); // 应该解码为 "FREE LOVE?"
rot13("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK."); // 应该解码为 "THE QUICK BROWN DOG JUMPED OVER THE LAZY FOX."
//排序
(function () {
var arr1 = [6,85,9,43,2,36];
var arr2 = [5,93,66,7,24];
var arr3 = [66,45,88,6,39,1];
bubbleSort(arr1); //冒泡排序
arrSort(arr2); //sort排序
quickSort(arr3); //快速排序
console.log(arr1);
console.log(arr2);
console.log(quickSort(arr3));
//冒泡排序
function bubbleSort(arr) {
for(var i = 0; i<arr.length-1;i++){
for(var j = i+1; j<arr.length;j++){
var tempI = arr[i];
var tempJ = arr[j];
if(tempI > tempJ){
arr[i] = tempJ;
arr[j] = tempI;
}
}
}
}
//sort排序
function arrSort(arr) {
return arr.sort(function (a,b) {
return a-b;
})
}
//快速排序
function quickSort(arr) {
if(arr.length <= 1) {return arr;}
var index = Math.floor(arr.length/2);
var cur = arr.splice(index,1);
var left = [];
var right = [];
for( var i=0;i<arr.length;i++){
cur > arr[i] ? left.push(arr[i]) : right.push(arr[i]);
}
return quickSort(left).concat([cur],quickSort(right));
}
})();
