簡體   English   中英

為什么JavaScript ++運算符在我的代碼中增加了多個步驟?

[英]why javascript ++ operator increase more than one step in my code?

我編寫了一個代碼來創建縮寫哈希表及其重復計數,但是我的代碼將其增加了超過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 }

為什么!!??

你想要做什么是遞增dict[abr]使用++dict[abr] || 1 ++dict[abr] || 1海事組織。 此處不應使用按位。

按位運算符將像這樣工作。

     2 (base 10) = 0010 (base 2)
     1 (base 10) = 0001 (base 2)
----------------------------------
 2 | 1 (base 10) = 0011 (base 2) = 3 (base 10).

這樣就變成了3。

這將幫助您了解“ |”的使用 操作員。

您可以使用“ ||” 運算符,如果要增值或1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM