* unique 数组去重
* @param {Array} array
*/functionunique(array){var res =[];var arrayLen = array.length;// 验证res 中是否存在 array 数组中元素for(var i =0; i < arrayLen; i++){0// j===resLen 循环执行完毕 都没有执行 break//----> 当前的arr[i] 不重复for(var j =0; j < resLen; j++){// 如果res 中有arr[i]if(array[i]=== res[j]){break;}}if(j === resLen){
res.push(array[i]);}}return res;}/**
* sort 数组排序
* @param {Array} array
* @param {Boolean} flag
*/functionsort(array, flag){if(flag){// 升序for(var i =0; i < array.length; i++){for(var j = i +1; j < array.length; j++){if(array[i]> array[j]){var tmp = array[i];
array[i]= array[j];
array[j]= tmp;}}}}else{for(var i =0; i < array.length; i++){for(var j = i +1; j < array.length; j++){if(array[i]< array[j]){var tmp = array[i];
array[i]= array[j];
array[j]= tmp;}}}}return array;}/**
* 求最大值
* @param {Array} arr
*/functionmax(arr){var max = arr[0];for(var i =0; i < arr.length; i++){
max = Math.max(max, arr[i]);}return max
}/**
* [{}] 数据排序
* @param {Array} arr
* @param {String} key
* @param {Boolean} flag
*/functionsort_object(arr, key, flag){// key 告诉函数。用什么比较if(flag){for(var i =0; i < arr.length; i++){for(var j = i +1; j < arr.length; j++){var age_j =Number(arr[j][key]);var age_i = arr[i][key];if(age_i > age_j){var tmp = arr[i];
arr[i]= arr[j];
arr[j]= tmp;}}}}else{for(var i =0; i < arr.length; i++){for(var j = i +1; j < arr.length; j++){var age_j =Number(arr[j][key]);var age_i = arr[i][[key]];if(age_i < age_j){var tmp = arr[i];
arr[i]= arr[j];
arr[j]= tmp;}}}}return arr;}/**
* 验证js 数据类型
* @param {*} data
*/functionvertyfi(data){if(typeof data !=="object")returntypeof data;if(data ===null)return'null';if(Array.isArray(data))return'array';return'object'}/**
* 数组扁平化
* @param {Array} arr
*/functionflatten(arr){var res =[]for(var i=0,len=arr.length;i<len;i++){if(Array.isArray(arr[i])){
res.res.concat(flatten(arr[i]))}else{
res.push(arr[i])}}return res
}
模拟实现 reverse
模拟实现 reverse
functionarr_reverse(array){var res =[]for(i=array.length-1;i>=0;i--){
res[res.length]=array[i]}return res
}var res =arr_reverse([1,2,3,4,5])
console.log(res);
模拟实现pop
functionarr_pop(array){var res =[]for(i=0;i<array.length-1;i++){
res[res.length]=array[i]}return res
}
console.log(arr_pop([1,2,3,4,5]));模拟toString()functionarr_toString(item){var res ='';for(i=0;i<item.length;i++){
res += item[i]+','}return res
}
console.log(arr_toString(['a','b','c',4,5,6]));
模拟join
functionarr_join(item,key){var res ='';for(i=0;i<item.length;i++){if(i<item.length-1){
res += item[i]+key
}else{
res += item[i]}}return res
}
console.log(arr_join(['a','b','c',4,5,6],'/'));模拟slice()
返回截取的片段数组
functionarr_slice(array,start,end){var res =[]for(i=0;i<array.length;i++){if(i>=start && i<end || end === undefined){
res[res.length]= array[i]}}return res
}
console.log(arr_slice([1,2,3,4,5],0));