计算JavaScript中引文的h索引
假设我们有一个正整数数组,它们代表特定研究人员在一段时间内进行的引用次数。
我们需要编写一个接受一个这样的数组的JavaScript函数,并且该函数应该根据该数组表示的引文数据找到该研究人员的h-index。
H指数:
考虑一位在其职业生涯中被引用过N次的研究人员。然后,如果他/她的N篇论文中的h篇至少被h引用,而其他N-h篇论文每篇不被h引用,则研究者具有索引h。
例如-
如果citations数组是-
const arr = [1, 6, 3, 0, 5];
该数据表明研究人员总共有5篇论文,每篇论文分别获得了1、6、3、0、5次引用。
而且由于研究人员拥有3篇论文,每篇论文至少被引3篇,其余两篇论文每篇被引用不超过3篇,因此h指数为3。
因此,此数组的输出应为-
const output = 3;
示例
以下是代码-
const arr = [1, 6, 3, 0, 5];
const findHIndex = (arr = []) => {
let possible = [];
let { length: len } = arr;
if (len === 0){
return 0;
};
possible.length = len + 2;
possible = possible.join('-').split('').map(() => 0);
for (let i = 0; i < len; i ++) {
let val = arr[i];
let ind = val > len ? len : val;
possible[ind] += 1;
}
let result = 0;
for (let k = len; k >= 0; k --) {
result += possible[k];
if (result >= k) {
return k;
}
}
};
console.log(findHIndex(arr));输出结果以下是控制台输出-
3