Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Chọn chỉ mục ngẫu nhiên từ mảng trong JavaScript


Vấn đề

Cần viết hàm JS nhận mảng số arr (có thể trùng lặp) và số nguyên num tồn tại trong mảng. Trả về chỉ mục ngẫu nhiên trong các vị trí chứa num.

Ví dụ:

const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3;

Kết quả:

const output = 4;

Giải thích:

Số 3 ở index 1,4,7. Chọn ngẫu nhiên một trong ba.

Ví dụ

Mã thực hiện:

const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3; Array.prototype.pick = function(target) {    const targets = []    this.findTarget(0, this.length, target, targets);    return targets[Math.floor(Math.random() * targets.length)]; }; Array.prototype.findTarget = function(start, end, target, targets) {    if(start + 1 === end || start === end) {       if(this[start] === target) targets.push(start);       return;    }    let j = start + Math.floor((end - start)/2);    this.findTarget(start, j, target, targets);    this.findTarget(j, end, target, targets); }; console.log(arr.pick(num));

Kết quả

Kết quả in ra console:

4