函数与JS FAIL中的参数

时间:2018-01-04 15:32:49

标签: javascript arguments

我正在尝试为我的JS功能添加参数,以便在我的QML表单中使用它,但它不起作用。

这里的工作代码:

function sum()
{
  var res = 0;
  var res1 = 0;
  var result = 0;
  for(var i = 0; i < listModel.count; i++){
  res += parseFloat(listModel.get(i).trip_time);
  }
  for(var i1 = 0; i1 < listView.currentRow; i1++){
  res1 += parseFloat(listModel.get(i1).trip_time);
  }
  result = res-res1;
  return result;
}

但当我尝试用这样的参数替换“trip_time”时:

function sum(column)
{
  var res = 0;
  var res1 = 0;
  var result = 0;
  for(var i = 0; i < listModel.count; i++){
  res += parseFloat(listModel.get(i).column);
  }
  for(var i1 = 0; i1 < listView.currentRow; i1++){
  res1 += parseFloat(listModel.get(i1).column);
  }
  result = res-res1;
  return result;
}

并使用以下命令在我的qml中调用该函数:

JS.sum(trip_time)

我收到错误:

ReferenceError:未定义trip_time

我用了很多时间来添加如下所示的参数:

function hourtodec(hour)
{
    var res = hour.split(":")
    var hours = parseInt(res[0]);
    var minutes = parseInt(res[1]);

    var dec = hours+ minutes/60;
    return dec;
}

我以前从未遇到过这个问题......

你能帮我吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

您没有以良好的方式使用密钥对象listModel.get(i)[column]function sum(column) { var res = 0; var res1 = 0; var result = 0; for(var i = 0; i < listModel.count; i++){ res += parseFloat(listModel.get(i)[column]); } for(var i1 = 0; i1 < listView.currentRow; i1++){ res1 += parseFloat(listModel.get(i1)[column]); } result = res-res1; return result; }应为JS.sum("trip_time");,您的参数应为字符串:&#34; trip_time&#34;

&#13;
&#13;
public static class Catch
{
    public static Exception Exception(Action action)
    {
        Exception exception = null;

        try
        {
            action();
        }
        catch (Exception ex)
        {
            exception = ex;
        }

        return exception;
    }
}
&#13;
&#13;
&#13;

并使用:// ACT var actualException = Catch.Exception(() => DoSomething()) // ASSERT Assert.IsNotNull(actualException, "No exception thrown"); Assert.IsInstanceOfType(actualException, expectedType); Assert.AreEqual(expectedExceptionMessage, actualException.Message);