如何将函数分配给javascript变量

时间:2018-03-21 20:19:26

标签: javascript

我需要使用其功能访问数组元素。

例如,我有阵列A [],现在我想创建阵列B,例如

select adp_id,
  SUM(CASE WHEN coctr_L3 = '99990001594' THEN total ELSE 0.0 END)as bl_total,
  SUM(total) as bank_total
from dbo.IQCS_AppsByCC a
where coctr_L3 = '99990001594'
and adp_id IN(19897, 15034, 17381, 13840 )
group by adp_id
HAVING 
 SUM(CASE WHEN coctr_L3 = '99990001594' THEN total ELSE 0 END)/SUM(total)*100>50

我尝试了以下代码,但我收到的错误为A[i] === B[i].value()

B[i].value is not a function

这是正确的方法吗?

2 个答案:

答案 0 :(得分:6)

您需要指定一个对象:

B[i] = {
    value: function () {
        return A[i];
    }
}

为避免i范围出现任何问题,您可以使用语句 let

  

let语句声明一个块作用域局部变量,可选择将其初始化为一个值。

function test(A) {
  var B = new Array();
  for (let i = 0; i < A.length; i++) {
    B[i] = {
      value: function() {
        return A[i];
      }
    };
  }

  for (let k = 0; k < B.length; k++) {
    console.log(B[k].value());
  }
  return B;
}

var B = test([1, 2, 3]);
console.log(B)
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

你可以使价值匿名,例如B[i] = function () { /* Your code */ }然后只需拨打B[i]()而不是B[i].value()