自定义 instanceof
function myInstanceof(left,right){
let proto = left.__proto__
let prototype = right.prototype
while(true){
if(proto === null)return false
if(proto === prototype)return true
proto = proto.__proto__
}
}
自定义flat
function flatDeep( arr, dep=1 ){
let ret = []
for(let i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
dep>0 ? (ret = ret.concat(flatter(arr[i],dep-1))):(ret.push(arr[i]))
}else{
ret.push(arr[i])
}
}
return ret
}
数组的去重
Array.prototype.distinct = function (){
var arr = this,
result = [],
len = arr.length;
arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现
var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复
if(bool === -1){
result.push(v);
}
})
return result;
};
var a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];
var b = a.distinct();
console.log(b.toString()); //1,23,2,3
倒序
var arr=[1,2,3,4]
var temp
for(i=0;i < arr.length/2;i++){
temp=arr[i]
arr[i]=arr[arr.length-1-i]
arr[arr.length-1-i]=temp
}
console.log(arr)