我正在尝试使用变量作为数组的别名,其思想是将变量用作别名,以根据传递给函数的参数实现插入数据。
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);
};
};
我已经进行了研究,但尚未实现目标。
您能帮我寻找解决方案,某些方法或库来用作变量的别名吗?
语言:Node Js
答案 0 :(得分:0)
如果您需要将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
};
//.....
答案 1 :(得分:0)
您可以使用一个对象,并在该对象中存储两个数组,一个数组用于“ 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']);