0
var list = new Array(
    new Array("HAV", "TWI", "DOG-20::WHCH-2::WCBD-2"),
    new Array("TWI", "HAV", "DOG-20::WHCH-2::WCBD-2")
); 

<SELECT NAME="DESTINATION">
<OPTION VALUE="HAV">HAV</OPTION>
<OPTION VALUE="TWI">TWI</OPTION>
</SELECT>
<SELECT NAME="DESTINATION2">
<OPTION VALUE="TWI">TWI</OPTION>
<OPTION VALUE="HAV">HAV</OPTION>
</SELECT>

この配列の値を取得するにはどうすればよいでしょうか。

2つの選択が「HAV」と「TWI」に設定されている場合、値を取得しようとしています.

つまり、入力が HAV および TWI の場合、DOG の値を取得します。

4

3 に答える 3

0
var list = new Array(
  new Array("HAV", "TWI", "DOG-20::WHCH-2::WCBD-2"),
  new Array("TWI", "HAV", "DOG-30::WHCH-2::WCBD-2")
);

function getDog(p1, p2) {
  for (var i = 0, l = list.length; i < l; i++) {
    if (list[i][0] === p1 && list[i][1] === p2) {
      return /^DOG-([0-9]+)::WHCH-[0-9]+::WCBD-[0-9]+$/.exec(list[i][2])[1];
    }
  }
}

var dog = getDog('HAV', 'TWI'); // 20
var dog1 = getDog('TWI', 'HAV'); // 30

フィドル

これをさらに進めて、3 番目のパラメーターをクエリとして使用して他の値を取得できます。

var list = new Array(
  new Array("HAV", "TWI", "DOG-20::WHCH-4::WCBD-7"),
  new Array("TWI", "HAV", "DOG-30::WHCH-5::WCBD-6") 
);

function getValue(p1, p2, query) {
  for (var i = 0, l = list.length; i < l; i++) {
    if (list[i][0] === p1 && list[i][1] === p2) {
      var regex = new RegExp(query.toUpperCase() + '-([0-9]+)');
      return regex.exec(list[i][2])[1];
    }
  }
}

var dog = getDog('HAV', 'TWI', 'DOG'); // 20
var whch = getDog('HAV', 'TWI', 'WHCH'); // 4

フィドル

于 2013-10-11T12:27:17.873 に答える
0

最初に選択ボックスにIDを与えます

HTML

 <SELECT NAME="DESTINATION" id="DESTINATION">
    <OPTION VALUE="HAV">HAV</OPTION>
    <OPTION VALUE="TWI">TWI</OPTION>
    </SELECT>
    <SELECT NAME="DESTINATION2" id="DESTINATION2">
    <OPTION VALUE="TWI">TWI</OPTION>
    <OPTION VALUE="HAV">HAV</OPTION>
    </SELECT>

JavaScript

for(var i =0;i <list .length ;i++)
{
  var dogs = list[i];
  var dest = document.getElementById("DESTINATION").value;
  var dest2 = document.getElementById("DESTINATION2").value;
  if(dogs [0] == dest && dogs [1] == dest2 )
  {
      return dogs[2];
  }
}

これは DOG-20::WHCH-2::WCBD-2 を返します。

于 2013-10-11T12:34:24.670 に答える