Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの配列からランダムにインデックスを選択


問題

Numbersの配列arrを受け取るJavaScript関数を作成する必要があります。これには、最初の引数として重複が含まれ、2番目の引数として配列に存在する整数が含まれる可能性があります。

関数は、数値が配列に存在するインデックスを返す必要があります。数値は配列に複数回存在する可能性があるため、ランダムに1つのインデックスを選択し、そのインデックスを返す必要があります。

たとえば、関数への入力が-

の場合
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

  1. JavaScript配列findIndex()関数

    条件が渡された場合、JavaScriptのfindIndex()メソッドを使用して、配列の最初の要素のインデックスを返します。 構文は次のとおりです- array.findIndex(function(currentValue, index, arr), thisValue) ここで、JavaScriptでfindIndex()メソッドを実装しましょう- 例 <!DOCTYPE html> <html> <body>    <h2>Rank</h2>    <button onclic

  2. JavaScript Array.from()メソッド

    Array.from()は、指定された配列インスタンスから新しい配列オブジェクトを作成します。 以下は、配列from()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Docume