在 JS FAIL 中带有参数的函数



我正在尝试向我的 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(

我收到错误:

引用错误: 未定义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;
}

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

你能帮我吗?

谢谢

你没有很好地使用键对象columnlistModel.get(i).column应该是listModel.get(i)[column]的,你的参数应该是一个字符串:"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;
}

并使用 : JS.sum("trip_time");

最新更新