函数与JS FAIL中的参数[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数与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)

我收到错误:

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;
}

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

请问你能帮帮我吗?

非常感谢你

答案

你没有以一种好的方式使用关键对象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 FAIL中的参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python函数

js中的Object.assign接受两个函数为参数的时候会发生什么?

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

9.13面经

JS常用代码片段-127个常用罗列-值得收藏

12_关于flask中的宏