当出现 'no match' 时,d3 .filter 函数在匹配两个数组中的字符串值时停止

d3 .filter function stops while matching string values in two arrays when a 'no match' occurs

意图: 将来自 localStorage 的字符串与来自 .csv 的数组中的字符串进行匹配,并在匹配时更改样式。

所有可用的单词都在两个不同的 .csv 文件中。在 localStorage 中存储了文件 1 或文件 2 中的一些单词。 在页面刷新时,会显示 csv-list 1 或 csv-list 2,而不是同时显示。

以下代码从 localStorage 获取字符串:

retrieveMarks = window.localStorage.getItem("marked")
      wup = JSON.parse(retrieveMarks);
      console.log("hi" + wup)

并在控制台中正确显示:

hicsalád,nő,bank,hal,kabát,baba,vasútállomás,étel,ügyvéd,banán,diák,gyermek,energia

我现在在过滤器中使用此列表,成功匹配第二个数组 d ( strings from .csv ); 成功并按预期更改样式:

console.log(d3.selectAll(".bubble-label-name").filter((d) -> textValue(d) in wup).style("border", "6px solid red"))

问题:

实例 1:the values (d) -> textValue(d) 从 First.csv 文件加载;一切正常;所有匹配的字符串都有预期的效果

实例2:the values (d) -> textValue(d)从Second.csv文件中加载,不再发生样式变化。

我的解读: 过滤器 .filter((d) -> textValue(d) in sup) 从 localStorage 数组的开头开始匹配。当它找不到字符串时,进程停止。过滤器不评估来自 localStorage 等的第二个词。

这是正确的吗?发生不匹配时需要什么代码来进行过滤,跳到下一个匹配项?

解决方案:

请在此处查看解决方案。从两个不同的 cvs 中获取值并不是真正的问题,只是一个错字。

d3 localStorage.getItem() 比较数组 .filter()