函数节点js的数组别名

Array alias for function Node js

我正在尝试使用变量作为数组的别名,想法是变量作为别名来实现根据传递给函数的参数插入数据。

    const _ = require('underscore');
    var ha = [];
    var cha = [];
    // livedata insert all data (true or false) into array cha
    // if data contains true valor then insert data in array ha
    HA("cha",open,high,low,close);

    function HA(mode,o,h,l,c){
        var open = Number(o);
        var high = Number(h);
        var low = Number(l);
        var close = Number(c);

        if (mode == "ha" ){
            var arr = ha;         // <-- variable as array alias
        }else{
            var arr = cha;        // <-- variable as array alias
        };

        if (arr == ""){
        arr.push({open,high,low,close});    
        }else{
        console.log("ARRAY");
        console.log(_.last(arr).open);
        console.log(Number(_.last(arr).open));
        console.log("ARRAY");        
        var lhao = Number(_.last(arr).open); 
        var lhac = Number(_.last(arr).close);   

        var hao = ((lhao + lhac) / 2 ).toFixed(8);
        var hac = ((open + high + low + close) / 4).toFixed(8);
        var hah = Math.max(hao, high, hac);
        var hal = Math.min(hao, low, hac);

        var open = hao;
        var high = hah;
        var low = hal;
        var close = hac;

        arr.push({open,high,low,close});        
        console.log(arr);
        };      
    };

我研究过,但没有达到objective。

你能帮我寻找解决方案,我可以使用一些方法或库来使用变量作为别名吗?

语言:Node.js

如果您需要将 arr 变量限制在每个函数调用中,您需要将 arr 变量设为函数的局部变量,如下所示

//....

function HA(mode,o,h,l,c){
   //....
   var arr;

   if (mode == "ha" ){
      arr = ha;         // <-- variable as array alias
   }else{
      arr = cha;        // <-- variable as array alias
   };

   //.....

您可以使用一个对象并在该对象中存储两个数组,一个用于 'ha' 结果,一个用于 'cha' 结果。下面是如何执行此操作以及如何访问正确数组的示例,具体取决于模式:

results = { ha: [], cha: [] };

function HA(mode, value) {
  results[mode].push(value);
}

HA('ha', 1);
HA('ha', 4);
HA('ha', 9);

HA('cha', 111);
HA('cha', 333);
HA('cha', 999);

// The ha results: [ 1, 4, 9 ]
console.log('The ha results:', results['ha']);
// The cha results: [ 111, 333, 999 ]
console.log('The cha results:', results['cha']);