Excel到Javascript网页转换

时间:2016-02-28 16:06:47

标签: javascript arrays excel web

我有一个Excel工作表计算我试图转换为带有Web输出的Javascript。我对Javascript很新,但是我在尝试实现的工作表中遇到了一些问题。

该表是一个氦气体积计算器,它将采用给定的气球类型,乘以一个数量,然后建议填充给定体积所需的氦气罐的最佳值。

这是电子表格的参考:

https://docs.google.com/spreadsheets/d/11EanU_iEr5QIxggyQNjxObFbHRg_77_TXsLQ-zhmtUY/edit?usp=sharing

这是我的JSFiddle尝试使用简短的Web应用程序:

http://jsfiddle.net/wLnv9xLj/41/

var $ = document.getElementById.bind(document);

$('btn').addEventListener('click', function() {

  var

    tanks = {
      0: {
        name: 'HEL550',
        volume: 292
      },
      1: {
        name: 'HEL450',
        volume: 225
      },
      2: {
        name: 'HEL250',
        volume: 125
      },
      3: {
        name: 'HEL160',
        volume: 125
      },
      4: {
        name: 'HEL110',
        volume: 55
      },
      5: {
        name: 'HEL50',
        volume: 27.5
      },
      6: {
        name: 'BT 326502',
        volume: 14.9
      },

      7: {
        name: 'BT 306472',
        volume: 8.9
      }
    },

    balloonModel = $('balloon_model').value,
    qantity = $('qty').value,
    finalResult = balloonModel * qantity,
    finalResultRounded = finalResult.toFixed(2),
    tankCalc = tanks[7].name;

  $('result').value = finalResultRounded;
  $('tankyouneed').value = tankCalc;


}, false);

基本的音量计算很容易并且有效。但我不能试图使用数组和循环来完成其他工作。

在电子表格中列出了所有气球类型,但我实际上只需要一次选择一个,因此下拉列表。我不需要显示水箱计算,只需要根据电子表格结果选择哪个水箱。右边是3个坦克建议:需要实际油箱,最大可运输性或一次性使用不想再购买的人。

有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

好。我明白。你需要一个循环来找到最好的,第二个等坦克结果。 我的代码有问题,但我希望你理解我的解决方案: http://jsfiddle.net/wLnv9xLj/42/

   for(var i = 0; i < tanks.length; i++){
         var tank = tanks[i];
       console.log(tank);
       if(tank.volume >= finalResult){
            if(
             first_tank.name !== '' &&
            (first_tank.volume - finalResult) > (tank.volume - finalResult)
            ){
             first_tank = tank;
          }else{
            first_tank = tank;
          }
       }
    }

for(var i = 0; i < tanks.length; i++){ var tank = tanks[i]; console.log(tank); if(tank.volume >= finalResult){ if( first_tank.name !== '' && (first_tank.volume - finalResult) > (tank.volume - finalResult) ){ first_tank = tank; }else{ first_tank = tank; } } }

我循环每一个坦克并检查音量。如果高于或等于我的结果需要它将其作为first_tank。也许名字best_tank更好。在我检查first_tank之前。它是不是空的我检查坦克的需要量和体积。这是(坦克的体积 - 你需要的体积)小于(你需要的第一个 - 体积 - 体积)它把它作为first_tank或更好的best_tank。