- 编写一个方法,该方法接收两个参数,分别为 k 和 一个无序的纯数字数组。该方法在执行后,会返回数组中第 k 大的数字。特别注意,如果数组中,有两位数值一样的数字,同数值数字排名并列。如 [3,1,3,2,5,4,5] 中,第 1 大的数字为 5,第2大的数字为 4,第5大的数字为 1。
var getkth = function(k,arr){
let temp = {};
for(let i=0; i<arr.length; i++){
if(temp.hasOwnProperty([arr[i]])){
temp[arr[i]] += 1;
}else{
temp[arr[i]]= 1;
}
}
let res = [];
for(let key in temp){
res.unshift(key)
}
return res[k-1];
}
proto 和 prototype 之间有什么关系?
二者都是对象的属性,存储一个地址指向共有属性集。.call(), .apply() .bind() 的区别和作用?bind 方法如何来实现?
call()方法使用一个指定的this值和单独给出的一个或多个参数来调用一个函数。
apply()方法接收的是一个包含多个参数的数组
bind()方法创建一个新的函数,在bind()被调用时,这个新函数的this被指定为bind()的第一个参数,而其余参数将作为新函数的参数,供调用时使用。因此bind()是创建了一个新的函数,需要手动调用。
call()、apply()、bind()都可以改变this的指向