Giả sử chúng ta có một mảng các số nguyên dương đại diện cho số lượng trích dẫn mà nhà nghiên cứu chuyên sâu đã thực hiện trong một khoảng thời gian.
Chúng tôi bắt buộc phải viết một hàm JavaScript có trong một mảng như vậy và hàm phải tìm chỉ số h của nhà nghiên cứu đó dựa trên dữ liệu trích dẫn được đại diện bởi mảng.
H-Index:
Hãy xem xét một nhà nghiên cứu đã thực hiện N số lần trích dẫn trong sự nghiệp của mình. Sau đó, nhà nghiên cứu lập chỉ mục h nếu h trong số N bài báo của họ có ít nhất h trích dẫn mỗi bài và N - h bài báo khác có không quá h trích dẫn mỗi bài.
Ví dụ -
Nếu mảng trích dẫn là -
const arr = [1, 6, 3, 0, 5];
Dữ liệu này thể hiện rằng nhà nghiên cứu có tổng cộng 5 bài báo và mỗi bài báo đã nhận được 1, 6, 3, 0, 5 trích dẫn tương ứng.
Và vì nhà nghiên cứu có 3 bài báo với ít nhất 3 trích dẫn mỗi bài và hai bài còn lại với mỗi bài không quá 3 trích dẫn, nên chỉ số h là 3.
Do đó, đầu ra cho mảng này phải là -
const output = 3;
Ví dụ
Sau đây là mã -
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));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
3