我有一個食物項目營養成分數組的數據庫。我所要做的就是選擇2個項目的結果是第一個項目和第二個項目的值之間的差異。例如,如果第一個項目是72卡路里,而另一個項目是50卡路里,我希望輸出說「22多卡路里,x更多克蛋白質,y更多克脂肪,等等。如果項目逆轉,我希望它說22卡路里,等等。從下拉菜單(Javascript)輸出兩個數組值的差異
這是我到目前爲止的代碼。我能夠輸出每個項目的值,但還沒有想出如何輸出的差異:
var stocks = [
["Beef (80/20) raw","oz",72,4.85,5.65,0,2.142,19,20,4],
["Beef (90/10) raw","oz",50,5.65,2.83,0,1.109,19,18,4]]
$(".selectStock").each(function(){
for (var i = 0, len = stocks.length; i < len; i++) {
$("<option>").html(stocks[i][0]).attr("value", i).appendTo(this);
}
});
function r2d (i) {
return Math.round(i * 100)/100
}
$(".selectStock").change(updateAmount);
$("#numberOfStocks").on('keyup', updateAmount);
function updateAmount() {
$(".selectStock").each(function() {
index = Number($(this).val());
if (isNaN(index)) {
return;
}
amt = Number($("#numberOfStocks").val());
if (isNaN(amt) || amt == 0) {
amt = stocks[index][9];
}
$(this).nextAll(".result:first").html("")
.append((r2d(amt*stocks[index][2])).toLocaleString() + " calories<br />")
.append((Math.round(stocks[index][3] * amt * 100)/100).toLocaleString() + " g of protein<br />")
.append((Math.round(stocks[index][4] * amt * 1000)/1000).toLocaleString() + " g of fat <br />")
.append((Math.round(stocks[index][5] * amt * 100)/100).toLocaleString() + " g of saturated fat <br />")
.append((Math.round(stocks[index][6] * amt * 100)/100).toLocaleString() + " g of sugar <br />")
.append((Math.round(stocks[index][7] * amt * 100)/100).toLocaleString() + " mg of sodium <br />")
.append((Math.round(stocks[index][8] * amt * 100)/100).toLocaleString() + " mg of cholesterol <br />");
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<meta name="viewport" content="width=10px, initial-scale=1.0">
</head>
<body>
<input value = "" type="text" id="numberOfStocks" />
<div style="display:block;">
<div class="side">
<h2>ounce of: </h2>
<select class="selectStock">
<option>Pick a food!</option>
</select>
<br>
<br>
<div class="result"></div>
</div>
<div class="side">
<h2>vs ounce of:</h2>
<select class="selectStock">
<option>Pick a food!</option>
</select>
<br>
<br>
<div class="result"></div>
</div>
</div>
</body>
會在此欣賞指導。謝謝一堆!
這是awesome-感謝一大堆!我基本上從CSV導入這個,所以我可以轉換成JSON對象,如果更容易。股票[17]應該是服務量(例如4意味着4盎司),我需要它是文本框中的自動價值。你知道我怎麼能做到這一點?另一件事是,我需要有服務單位(例如盎司)以數量(盎司)顯示,以便它是動態的,如果單位是克,液體盎司,升等。你知道我會怎麼樣能夠做到這一點呢?謝謝一堆 –
是的,我應該可以做到這一點。我目前無法編輯我的答案,但給我一兩個小時,我會盡快回復您。 – gyre
我還是不明白'股票[17]'應該得到多少。 。 。你能給我完整的CSV嗎?我做了一些清理代碼並添加了動態單元;讓我知道這是否符合你的希望。我會稍後再清理它,當我找到時間:) – gyre