1

整数a=[1,3,5,7]との2つの配列がありますb=[2,4,6,8]。次に、指定されたvar$vが含まれaているかどうかを確認し、含まれている場合は、から同等の要素を返す必要がありbます。例:

if $v in a (and $x is its position) return $b[$x]

これを実行するにはどうすればよいですか?

4

6 に答える 6

7

このindexOfメソッドは、アイテムが見つかった配列のインデックスを返します。アイテムが見つからなかった場合は-1を返します。

var i = a.indexOf(v);
if (i != -1)
{
    return b[i]
}

編集:ブラウザにメソッドがない場合は、メソッドが追加されます。

if (!Array.prototype.indexOf)
{
    Array.prototype.indexOf = function(x)
    {
        var i;
        for (i = 0; i < this.length; i++)
        {
            if (this[i] === x)
            {
                return i;
            }
        }
        return -1;
    }
}
于 2012-05-21T12:02:55.520 に答える
3

配列内のアイテムをループします。

for (var i = 0; i < a.length; i++) {
  if (a[i] == v) {
    return b[i];
  }
}
return -1; // not found
于 2012-05-21T12:03:20.920 に答える
1
if(a.indexOf(v) > -1) {
  var id = a.indexOf(v);
  console.log(b[id]);
}

Array.indexOfの互換性についてはを参照してください

于 2012-05-21T12:04:20.870 に答える
1
var i = a.indexOf(v);
if (i !== -1)
{
    return b[i]
}
于 2012-05-21T12:09:49.833 に答える
0

以下の機能を試してみてください。PHP.js は本当に素晴らしい関数のコレクションであり、今日の機能を実現するためのすべての貢献者に敬意を表します。

http://phpjs.org/functions/in_array:432

于 2012-05-21T18:14:28.513 に答える
0

これでうまくいくと思います。

>> function test(k){ return b[a.indexOf(k)]}

>> test(1)
2

>> test(9)
undefined

js では、indexOf常に整数を返し、整数 ( などA[3]) で配列を呼び出すと、常に値または を返しますundefinedundefinedアプリケーション コードが壊れていないことを確認したい場合は、明示的に値を確認してください。

于 2012-05-21T12:33:21.890 に答える