0

JS に配列があるとします: var fruit = [apple,orange,banana] 各果物のインデックスを変数に格納して、いつでも配列にさらに要素を追加してもわかるようにしたいと考えています。つまり、この場合、0 はリンゴですが、その先頭に何かを追加すると、リンゴのインデックスが変化します。

私が考えることができるより冗長な方法は、配列をループすることです

for (var i=0;i<fruits.length;i++) {
   switch(fruits[i]) {
    case:"apple"
      var indexApple = i;
      break;
    //etc 
   }
}

私が考えることができる別の方法は、配列の値を変数名として使用することです。

for (var i=0;i<fruits.length;i++) {
  //psedo code
  var 'index' + fruits[i] = i;
}

したがって、最終的にはvar indexApple = 0、indexOrange = 1などになります。2番目の方法の鍵は、文字列「index」と配列の値を連結して動的変数を作成できることです。変数。それを行う方法がわからない。

注: 理想的には、インデックスを格納する変数を動的に生成する必要があります。私だけが果物配列を変更/追加できるように、インデックスを格納するために新しい変数が生成されます。

4

2 に答える 2

0

インデックスの値が正当であることを確認するのは難しいようです。jquery を含めて、配列内の項目のインデックスを返すinArrayメソッドを使用します。

function showIndexes() {
  var appleIndex = $.inArray(fruits, "Apple"); //returns 0
  var guavaIndex = $.inArray(fruits, "Guava"); //returns -1

  fruits.unshift("Guava");
  appleIndex = $.inArray(fruits, "Apple"); //returns 1
  guavaIndex = $.inArray(fruits, "Guava"); //returns 0
}
于 2011-04-18T09:54:22.730 に答える