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

d3 localStorage.getItem() compare arrays .filter()

我正在尝试从 localStorage 取回值; div 元素中的多次点击计数器。 它们被存储在 localStorage 中的 key = this.id 下;这些值是 divs.

的 innerText

现在: 1. 我过滤选择以查找 arraylocal 中元素 ID 的匹配项 2.如果匹配,设置html.

   d3.selectAll(".numberCircle").filter((d) -> this.id in arraylocal).html(localStorage.getItem(((d) -> this.id))
  1. 我想使用 'this.id'.

  2. 从 localStorage 中获取值(来自元素的 innerText)
  3. 如何设置 localStorage.getItem(x????x) 以读取正确的 key/value 对(其中 key = this.id )?

因此:对于每个数组过滤器匹配,我还需要与该匹配相关的 localStorage value

解决方案:

updateLabels = function() {

var arraylocal, key;

localStorage 中的键反映了此解决方案中的字符串,因为我为 setItem 设置了一个字符串值,例如:setItem(string,string)

arraylocal 是一个包含这些字符串的数组

arraylocal = [];
for (key in localStorage) {
  arraylocal.push(key);
  console.log(arraylocal);
}

每个气泡标签名称都有一个字符串值 textValue(d)。

当字符串值 textValue(d) 与数组中的字符串 'key' 匹配时,过滤器会更改节点的样式

d3.selectAll(".bubble-label-name").filter(function(d) {
  var ref;
  return ref = textValue(d), indexOf.call(arraylocal, ref) >= 0;
}).style("border", "2px solid red");

};