函数节点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']);
我正在尝试使用变量作为数组的别名,想法是变量作为别名来实现根据传递给函数的参数插入数据。
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']);