gpt4 book ai didi

javascript - 在查找字符串中字符出现的频率时,此语法的确切含义是什么?

转载 作者:行者123 更新时间:2023-11-30 09:17:41 26 4
gpt4 key购买 nike

在查找字符串中字符出现的频率时,此语法的确切含义是什么?

var str = 'abcccdddd';

function maxCharCount(target) {
const chars = {};

let maxChar = '';
let maxValue = 1;

for (let char of target) {
chars[char] = chars[char] + 1 || 1; //what is the meaning of this line exactly in detail???
}

return chars;
}

console.log(maxCharCount(str));

最佳答案

字符[字符] + 1 || 1 有两个边:左边和右边。如果左侧解析为假值,则整个表达式解析到右侧,如果左侧解析为真值,则表达式解析到左侧。

也就是说,左侧只能在一种情况下为假:当 chars[char]undefined 时(当 chars 没有包含名称为 char 的属性)。 undefined + 1 给出 NaN 即不是数字,这是一个虚假值。

像这样的代码绝对应该被认为是糟糕的,因为它使开发人员的意图不明显。相反,至少应该首选这样的东西:

chars[char] = chars[char] ? chars[char] + 1 : 1;

关于javascript - 在查找字符串中字符出现的频率时,此语法的确切含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com