需要映射两个或多个数据集,并使用javascript显示为图表

需要映射两个或多个数据集,并使用javascript显示为图表,javascript,html,map-function,Javascript,Html,Map Function,因此,我使用Javascript编写了一个小脚本,它读取文本编辑器的内容,并根据其中所写内容执行算术/其他操作 与键入“col0+col1”类似,它将添加两列并显示饼图/条形图。 但这就是我一直在努力做的,“col0+col1+2000”,在这里,2000应该被添加到最终结果中 if(formula.split(“”[nCnt+1]=“+”){ 如果(是数字(公式分割(“”[nCnt])){ numTo=公式分割(“”[nCnt]; sym=公式分割(“”[nCnt+1]; sym+=numTo

因此,我使用Javascript编写了一个小脚本,它读取文本编辑器的内容,并根据其中所写内容执行算术/其他操作

与键入“col0+col1”类似,它将添加两列并显示饼图/条形图。 但这就是我一直在努力做的,“col0+col1+2000”,在这里,2000应该被添加到最终结果中

if(formula.split(“”[nCnt+1]=“+”){
如果(是数字(公式分割(“”[nCnt])){
numTo=公式分割(“”[nCnt];
sym=公式分割(“”[nCnt+1];
sym+=numTo;
//调试器;
}否则{
sym=公式分割(“”[nCnt+1];
}
secondaryData[secondaryData.length-1]=secondaryData[value].map(函数(num,idx){
//if(isNumber(numTo)){
num+=sym;
res=num+secondaryData[formula.split(“”[nCnt+2]]][idx];
返回res;
// }
});
}
我的逻辑是,用空间分割一切。然后,如果下一个索引中有“+”,请检查当前索引中是否有数字,并将值存储在变量中


然后使用map函数,最后添加所有内容,但它执行Var+integer操作,而不是integer+integer操作。此外,我还想知道如何向其中添加更多列,如“col0+col1+col2”等。

第一步是检查值是否为数字,但为了进行数学运算,需要解析值

if (isNumeric(formula.split(" ")[nCnt])) {
    numTo = parseFloat(formula.split(" ")[nCnt]);
    sym = parseFloat(formula.split(" ")[nCnt + 1]);
    sym += numTo;
} else {
    sym = formula.split(" ")[nCnt + 1];
}
如果要对所有列运行此操作,首先需要将它们分组到一个数组中,然后可以对数组中的每个值运行函数:

const formulas = [col1, col2, col3, col4];
for (const formula of formulas) {
    if (isNumeric(formula.split(" ")[nCnt])) {
        numTo = parseFloat(formula.split(" ")[nCnt]);
        sym = parseFloat(formula.split(" ")[nCnt + 1]);
        sym += numTo;
    } else {
        sym = formula.split(" ")[nCnt + 1];
    }
}

这段代码没有很好地运行,因为没有为我定义
nCnt
,但希望它能为您指明正确的方向。

您想用文本编辑器做一些类似excel formula bar的事情吗?是的,我已经以表格的形式实现了这一点,我只需要用图形的形式实现,您能显示
isNumeric()后面的代码吗
isNumber()
方法?我猜你的数字是以字符串形式出现的(“var+integer thing”)。您可能会发现
parseInt(num)
很有帮助。函数isNumeric(n){return!isNaN(parseFloat(n))&&isFinite(n);}@theholla,使用parseInt,这很好,我猜ncnt充当“for”循环的索引,从文本编辑器检索所有内容,并检查它是数字/符号还是col,就像我键入col0+col1一样,然后,对于按空格拆分,我会检查每一件事情,直到NCNTX的索引。解析值对您@Venky有用吗?如果你找到了另一个解决方案,你可以把它作为答案贴在这里。否则,您应该发布一个可执行代码段,以便其他人更好地了解您的问题。目前,我无法重现您的问题,因为我无法运行您的代码。我的isNumeric函数执行parseInt,但尽管如此,我还是使用了diff方法,我会很快更新它