JavaScriptで要素のn番目の一致するインデックスを取得する方法


  1. forループを使用する方法:

    function getNthMatchingIndex(arr, element, n) {
    let count = 0;
    for (let i = 0; i < arr.length; i++) {
    if (arr[i] === element) {
      count++;
      if (count === n) {
        return i;
      }
    }
    }
    return -1; // 要素が見つからない場合は-1を返す
    }
    const array = [1, 2, 3, 2, 4, 2, 5];
    const element = 2;
    const n = 3;
    const index = getNthMatchingIndex(array, element, n);
    console.log(index); // 出力: 5
  2. Array.prototype.indexOf()を使用する方法:

    function getNthMatchingIndex(arr, element, n) {
    let count = 0;
    let index = -1;
    while (count < n) {
    index = arr.indexOf(element, index + 1);
    if (index === -1) {
      break;
    }
    count++;
    }
    return index;
    }
    const array = [1, 2, 3, 2, 4, 2, 5];
    const element = 2;
    const n = 3;
    const index = getNthMatchingIndex(array, element, n);
    console.log(index); // 出力: 5
  3. Array.prototype.reduce()を使用する方法:

    function getNthMatchingIndex(arr, element, n) {
    let count = 0;
    const index = arr.reduce((acc, curr, i) => {
    if (curr === element) {
      count++;
      if (count === n) {
        return i;
      }
    }
    return acc;
    }, -1);
    return index;
    }
    const array = [1, 2, 3, 2, 4, 2, 5];
    const element = 2;
    const n = 3;
    const index = getNthMatchingIndex(array, element, n);
    console.log(index); // 出力: 5

これらの方法を使用して、JavaScriptで配列内の要素のn番目の一致するインデックスを取得することができます。上記のコード例を参考にして、自分の要件に合わせた方法を選択してください。