javascript数组去重 String字符串去掉两端空格 javascript Array二分法排序 比较 javascript 求和
通过原形添加方法:
==================数组去重(对象去重法)=======================
Array.prototype.unique=function(){
var res = [],
obj = {};
for (var i = 0; i < arr.length; i++) {
if(!obj[this[i]]){
res.push(arr[i]);
obj[this[i]] = 8;
}
};
return res;
}
var arr = ['2','4','35','4','23','2'];
arr.unique() => ["2", "4", "35", "23"];
==================字符串去空格=======================
String.prorotype.trim = function(){
return this.replace(/^\s+|\s+$/g,'');
}
var str = " my script ";
str.trim() => "my script";
=========================二分法排序思路========================
var quickSort = function(arr) {
if (arr.length <= 1) { return arr; }
var pivotIndex = Math.floor(arr.length / 2);
var pivot = arr.splice(pivotIndex, 1)[0]; // 找到中间数值,左右分别与该数字进行比较
var left = [];
var right = [];
for (var i = 0; i < arr.length; i++){
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right)); //(递归方法:函数自身调用自身方法)
};
quickSort (arr);
=========================二分法排序思路========================
=================传入比较函数====================
function compare(a,b){
return b - a;
}
arr.sort(compare()).reverse();
==================传入比较函数===================
============================================================
递归方法实现数组遍历
arr1 = [2,3,[4,6,[1,8]],12,10];
var arrs = [];
function getArr(arr){
for (var i = 0; i < arr.length; i++) {
if(typeof (arr[i]) == "number"){
arrs.push(arr[i]);
}else{
getArr(arr[i]);
}
};
}
getArr(arr1);
console.log(arrs) => [2,3,4,6,1,8,12,10]
============================================================
// ================求和===============
function sum(){
var num = 0;
for(var i = 0; i < arguments.length; i ++){
num += arguments[i];
}
return num;
}
console.log(sum(2,3,8)) => 13