[英]I need help understanding a couple lines of code
有人可以幫助我了解這條線上發生了什么:
chars[char] = (chars[char] || 0) + 1;
並在線:
.filter((char) => char[1] > 1).map((char) => char[0]);
/* FULL CODE */
const getRepeatedChars = (str) => {
const chars = {};
for (const char of str) {
chars[char] = (chars[char] || 0) + 1;
}
return Object.entries(chars)
.filter((char) => char[1] > 1)
.map((char) => char[0]);
};
console.log(getRepeatedChars("aabbkdndiccoekdczufnrz"));
chars[char] = (chars[char] || 0) + 1;
這會將chars[char]
的值加1
。 如果 object 中沒有鍵為char
的元素,則chars[char]
的值將是未定義的。 undefined || 0
undefined || 0
是0
; 第一次遇到特定字符時,將此元素加1
會將元素初始化為1
。
Object.entries(chars)
.filter((char) => char[1] > 1).map((char) => char[0]);
Object.entries(chars)
返回一個數組,其元素嵌套為[key, value]
形式的 arrays , chars
ZA8CFDE6331BD59EB2AC96F8911C4B6666 的鍵和值。 鍵是字符串中的字符,值是重復計數。 所以char[1] > 1
測試字符是否出現了不止一次,並且filter()
返回一個數組,其中為真。 然后.map()
返回char[0]
,即字符。 所以這會返回多次出現的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.