我正在读取一个名为myCookie的cookie,其值类似于1,2,3,4,9,11,23。然后创建一个var testem = myCookie.split(“,”);现在,我想像这样在“ for of”循环中使用每个值;

    var testem = myCookie.split(",");

    for (var i of testem) {
      alert(testem[i]);
      toggleCol(testem[I]);
    }


问题是警报总是从2开始,当然toggleCal函数也会这样做。在这种情况下(但不总是为1),如何使它从第一个值开始?在这种情况下,cookie值可能为3、4、5、6、9、12,应从3开始,而应从4开始。
有人可以向我解释原因。然后告诉我如何从myCookie的第一个值而不是第二个值启动它?

最佳答案

具有数组的for..of遍历值,而不是属性索引。请使用纯值:

for (const item of testem) {
  toggleCol(item);
}


如果要遍历属性名称,请改用for..in循环(强烈建议不要这样做):

for (const i in testem) {
  toggleCol(testem[i]);
}


或者,您可以使用更合适的方法forEach

testem.forEach(toggleCol); // assuming toggleCol uses exactly one argument

10-06 04:16