d3 localStorage 比较数组 .filter 咖啡脚本;数组变量不起作用

d3 localStorage compare arrays .filter coffee script; array variable not working

我正在有条件地设置 div 的 CSS。为此,我使用了 .filter。过滤器比较 2 个数组。 当我运行下面的代码时,它不起作用。当我硬编码 array_1 内容(取自控制台;在显示的代码中取消注释)时,它确实有效。

我假设循环产生的数组没有及时准备好过滤函数?

  labelEnter.append("div")
  .attr("class", "bubble-label-name")
  .text((d) -> textValue(d))


  arraylocal = []
  typeofKey = null
  for key of localStorage
    typeofKey = (typeof localStorage[key])
    array = arraylocal.push key
    break
  console.log(array)

 # array = ["show", "cum", "nec", "show"]

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

为什么使用硬编码的数组内容有效,但当我使用数组变量时却不起作用?

您似乎期待 arrayLocal.push(key) 到 return 数组的副本。但是,push() method returns a the new length of the array,这就是将存储在您的 array 变量中的所有内容。

感谢您的回复。以下代码有效。我会审核您发布的 link。谢谢。

 arraylocal = []
  for key of localStorage
    arraylocal.push key


d3.selectAll(".bubble-label-name").filter((d) -> textValue(d) in arraylocal).style("border", "1px solid red")