Perfoming公式/计算基于下拉菜单上的select?

var stocks = [ ['Apple',100,8998,723,7212], ['Microsoft',928,1992,821,2381] ]; var select = document.getElementById("selectStock"); for(var i = 0; i < stocks.length; i++) { var opt = stocks[i][0]; var el = document.createElement("option"); el.textContent = opt; el.value = opt; select.appendChild(el); } 
 <select id="selectStock"> <option>Choose a stock</option> </select> 

我有多个Javascript数组(从Excel中拉出),并有不同的function,基本上是根据数组的行进行计算。 例如:

 var stocks = [['Apple',100,8998,723,7212]['Microsoft,928,1992,821,2381]] 

我需要做的是使下拉菜单,将允许用户select一个选项(微软或苹果),然后基于这个select,将拉这个值到公式进行计算

 document.write(Math.round(stocks[i][1] * 100)/100 + " dollars per share"); 

我在哪里是基于variables的下拉菜单select。 这有道理吗? 我不知道如何解决这个问题,这是一个个人项目。 谢谢您的帮助!

https://jsfiddle.net/b22y3v85/

 var select = document.getElementById("selectStock"); select.onchange = (e) => { let index = stocks.indexOf(stocks.find(a => a.indexOf(e.target.value) > -1)); document.write(Math.round(stocks[index][1] * 100)/100 + " dollars per share"); }; 

这里是一个工作的例子,虽然你可能想要做的不是document.write结果。

 var stocks = [ ['Apple',100,8998,723,7212], ['Microsoft',928,1992,821,2381] ]; var select = document.getElementById("selectStock"); for(var i = 0; i < stocks.length; i++) { var opt = stocks[i][0]; var el = document.createElement("option"); el.textContent = opt; el.value = opt; select.appendChild(el); } function getPrice(stock) { var price = false; for (var a = 0; a < stocks.length; a++) { if (stocks[a][0] == stock) { price = stocks[a][1]; break; } } if (!price) { alert("Incorrect choice."); return; } document.getElementById("result").innerText = stock + " is currently " + (Math.round(price * 100)/100 + " dollars per share"); } 
 <select id="selectStock" onchange="getPrice(this.value);"> <option>Choose a stock</option> </select> <br><br> <div id="result"></div> 
 <select id="selectStock"></select> <script type="text/javascript"> var stocks = [ ['Apple',100,8998,723,7212], ['Microsoft',928,1992,821,2381] ]; var select = document.getElementById("selectStock"); for(var i = 0; i < stocks.length; i++) { var opt = stocks[i][0]; var el = document.createElement("option"); el.innerHTML = opt; el.value =stocks[i]+''; select.appendChild(el); } select.addEventListener('change', function(e){ var val = e.currentTarget.value; val = val.split(','); val.shift(); callYourMethod(val); }); </script>