在Javascript中访问数组值

时间:2016-02-09 07:49:53

标签: javascript

我是Java Script的新手。我有一个像这样的数组,

    var red = [10, 20, 30];
    var blue = [11, 21, 31];
    var green = [12, 22, 32];
    var userSelect = $("#Color").val();

此处userSelect应为“红色”,“蓝色”或“绿色”。我试图从用户输入字符串中获取数组。就像,如果他们输入字符串“green”,我会向他们显示绿色数组。我到目前为止所尝试的是,

     all = [red, blue, green];
     desiredArray = all[userSelect];

但它不起作用。有人可以指出我正确的方向吗?提前谢谢。

3 个答案:

答案 0 :(得分:2)

这不起作用,因为数组没有关于变量名的上下文。 你的所有人都会看起来像[[1,2,3],[4,5,6],[7,8,9]]。它不懂红色,绿色或蓝色。

您可以做的是在对象中分配这些内容。

var all={
"red": red,
"green":green,
"blue": blue
}

desiredArray = all[userSelect];

答案 1 :(得分:1)

  

将值存储在object而不是array中,以便您可以使用bracket notation([])使用对象的key来引用该值。当要动态确定属性名称时(在运行时之前未确定属性名称),此表示法也非常有用。

试试这个:



 var red = [10, 20, 30];
 var blue = [11, 21, 31];
 var green = [12, 22, 32];
 var userSelect = $("#Color").val();
 var all = {
   red: red,
   blue: blue,
   green: green
 };
 $('#Color').on('change', function() {
   alert(all[this.value]);
 })

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<select id='Color'>
  <option value='red'>Red</option>
  <option value='green'>Green</option>
  <option value='blue'>Blue</option>
</select>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这也可以:只需获取用户的字符串并测试它是否匹配。缺点是用户可能拼错或选择不存在的选项。

&#13;
&#13;
 var red = [10, 20, 30];
 var blue = [11, 21, 31];
 var green = [12, 22, 32];
 var userSelect = prompt("Choose red, green, or blue");
 switch(userSelect) {
  case 'green':
   alert('you chose green: ' + green);
  break;
  case 'red':
   alert('you chose red: ' + red);
  break;
  case 'blue':
   alert('you chose blue: ' + blue);
  break;
  default:
  alert('check your spelling...');
 }
&#13;
&#13;
&#13;