Js for 循环来存储值

Js for loop to store values

本文关键字:存储 循环 for Js      更新时间:2023-09-26

对于我正在使用 d3 执行的项目.js我需要访问具有多个值的.csv文件,并能够知道同一列有多少行具有一个特定的文本字符串。具体来说,我有一列具有"Sans"或"Serif"值,我试图做的是创建一个 for 循环来获取有多少行具有这些值,但不幸的是没有结果。我试图做的是在.csv加载的回调函数中添加这个循环:

    var serif = 0,
    sans = 0;
for (var i = 0; i >= dataset.length; i++) 
    { 
    if (dataset.Grazie = "Sans")
    { return sans += 1; }
    else { return serif += 1; };
    };
    console.log(serif);
    console.log(sans);

但在控制台中,该值仍为 0。数据集中的列称为"Grazie",该列上只有两个值是 Sans 或 Serif。我试过了

任何帮助将不胜感激!谢谢!

编辑:感谢Lugia101101,我设法找到了解决方案,即:

for (var i = 0; i < dataset.length; i++) {
    if (dataset[i].Grazie == "Sans") { sans ++; }
    else { serif++; }
};
var serif = 0,
    sans = 0;
for (var i = 0; i <= dataset.length; i++) { 
    if (dataset[i].Grazie == "'"Sans'"") {
        sans++;
    } else {
        serif++;
    }
}
console.log(serif);
console.log(sans);

您正在做的是返回一个值,该值用于退出函数,return一个值。您还需要使用比较器 ( == ) 而不是分配值 ( = )。

编辑:您还在语句后添加了分号。切勿在大括号后添加分号。

编辑:似乎值等于0的另一个原因是由于for循环。
记住把它想象成:将i设置为零,循环直到i不小于或等于dataset.length,每循环i递增一。

比较值时,必须使用==而不是=(设置变量的值)。

if (dataset.Grazie = "Sans")应改为if (dataset.Grazie == "Sans")

正如@MarvinSmit指出的那样,如果要存储增量值,则不应使用return