为什么javascript ++运算符在我的代码中增加了多个步骤?

时间:2016-08-25 07:03:42

标签: javascript

我编写了一个代码来创建缩写哈希表及其重复计数,但我的代码增加了超过1步。

var dict={};

function addToDict(str) {
  let abr = [str[0], str.length, str.slice(-1)].join('');
  return dict[abr] = ++dict[abr] | 1;
}


console.log(
  addToDict("salam"),
  addToDict("saaam"),
  addToDict("Sadegh"),
  addToDict("hosein"),
  addToDict("hasan"),
  addToDict("hesan"),
  addToDict("hesan")
)
console.log(dict);

结果是

{ s5m: 1, S6h: 1, h6n: 1, h5n: 1 }

而不是

{ s5m: 2, S6h: 1, h6n: 1, h5n: 3 }

为什么!! ??

2 个答案:

答案 0 :(得分:1)

您要做的是使用dict[abr] IMO增加++dict[abr] || 1。不应该在这里使用。

答案 1 :(得分:0)

按位运算符将像这样工作。

form

这样就变成了3。

这将有助于您了解" |"的使用操作

您可以使用" ||"运算符,如果您想要增量值或1。