Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 인용의 h 인덱스 계산

<시간/>

특정 연구원이 일정 기간 동안 수행한 인용 횟수를 나타내는 양의 정수 배열이 있다고 가정합니다.

우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 하며 함수는 배열이 나타내는 인용 데이터를 기반으로 해당 연구원의 h-인덱스를 찾아야 합니다.

H-색인:

자신의 경력에서 N번의 인용을 수행한 연구원을 생각해 보십시오. 그러면 연구자는 N개의 논문 중 h가 각각 최소 h회 인용되고 다른 N-h개의 논문이 각각 h회 이하인 경우 인덱스 h를 가집니다.

예를 들어 -

인용 배열이 -

인 경우
const arr = [1, 6, 3, 0, 5];

이 데이터는 연구자가 총 5편의 논문을 가지고 있고 각각이 각각 1, 6, 3, 0, 5회 인용되었음을 나타냅니다.

그리고 연구원은 각각 3회 이상 인용된 3개의 논문을 가지고 있고 나머지 2개는 각각 3회 이하로 인용되었으므로 h-index는 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