Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从onChange处理程序引用现有数组_Javascript_Html - Fatal编程技术网

Javascript 从onChange处理程序引用现有数组

Javascript 从onChange处理程序引用现有数组,javascript,html,Javascript,Html,我拥有现有阵列: var honda = [ 'civic', 'accord' ]; var toyota = [ 'corolla', 'camry' ]; 用户可以选择车辆品牌: <select id="vehicles"> <option value="honda">Honda</option> <option value="toyota">Toyota</option> </select> 我的问题:函

我拥有现有阵列:

var honda = [ 'civic', 'accord' ];
var toyota = [ 'corolla', 'camry' ];
用户可以选择车辆品牌:

<select id="vehicles">
  <option value="honda">Honda</option>
  <option value="toyota">Toyota</option>
</select>
我的问题:函数的
chooseMake
返回一个字符串。我需要一种方法将对
honda
toyota
数组的引用传递到另一个函数中,比如说
randomizeSelection(chooseMake)
,该函数从所选数组中返回一个随机值


我已经有了随机发生器功能。我需要一种方法来传递它,匹配用户选择的数组。。。而不是字符串。

这里的解决方案是将数组放入一个对象中。这样,数组名就可以作为对对象属性的字符串引用来访问

现在,对于您的随机函数,您不需要将其与数组的获取分开,但是根据您的要求,以下两个函数一起工作以获得一辆随机汽车:

window.addEventListener(“DOMContentLoaded”,function()){
//当使用括号表示法([])时,对象属性可以作为字符串访问
//通过将数组作为属性放置到对象中,可以
//您可以选择稍后将这些属性作为字符串引用。
变量makes={
本田:[“思域”、“雅阁”、“奥德赛”、“crv”、“山脊线”],
丰田:['corolla','camry','sienna','avalon']
};
//获取对DOM的引用并为其设置事件处理程序
var vehicleleselect=document.getElementById(“车辆”);
//而不是将事件处理程序设置为命名函数(我们无法
//将自定义参数传递给,因为它是一个自动调用的函数),
//我们将使处理程序成为匿名包装函数。
vehicleSelect.addEventListener('change',function(){
//在包装器函数中,我们可以做任何我们喜欢的事情,包括
//用我们想要的任何值调用其他函数。
//调用从对象中获取正确数组的函数
//基于此时选择的字符串值。
var result=chooseMake();
//获取数组并将其传递给随机化函数,并记录返回的结果
//随机值:
日志(随机选择(结果));
});
//当select值更改时,获取与字符串对应的数组
//选择的值
函数chooseMake(){
返回生成[vehicleSelect.value];
}
//接收所选阵列并从该阵列返回特定的汽车
//根据随机选择:
函数随机选择(make){
返回make[Math.floor(Math.random()*make.length)];
} 
});

本田
丰田
var vehicleSelect = document.getElementById('vehicles');
vehicleSelect.addEventListener('change', chooseMake, false);

var chooseMake = function() {
  var selected = vehicleSelect.value;
  return selected;
};