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")
我正在有条件地设置 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")