在 JavaScript 中从数组中随机选取索引
问题
我们需要编写一个 JavaScript 函数,它接受一个数字数组 arr,它可能包含重复项作为第一个参数和一个存在于数组中的整数作为第二个参数。
该函数应该返回数组中存在数字的索引,并且由于该数字可能在数组中多次存在,我们必须随机选择一个索引并返回该索引。
例如,如果函数的输入是 -
const arr = [5, 3, 6, 7, 3, 4, 2, 3];const num = 3;
那么输出应该是 -
const output = 4;
输出说明:
数字 3 存在于数组中的索引 1、4 和 7 处,并且由于我们必须随机选择任何索引,因此输出可以是 1 中的任何一个。
示例
此代码将是 -
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));
控制台中的输出将是 -
4
以上是 在 JavaScript 中从数组中随机选取索引 的全部内容, 来源链接: utcz.com/z/311405.html