首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Anagram Javascript

Anagram Javascript
EN

Stack Overflow用户
提问于 2022-03-09 21:55:38
回答 1查看 65关注 0票数 2

用下面的代码提问。如果我正在减少对象值,当它达到零时,如果(!obj1letter)因为字母仍然存在于obj中,它是如何满足这个条件的,那么它的值就会下降。

代码语言:javascript
复制
function validAnagram(a, b){
if(a.length !== b.length){
    return false;
}
if(a.length === 0 && b.length === 0 ){
    return true;
}
    let obj1 = {};

  // add whatever parameters you deem necessary - good luck!
    for(let i= 0; i<a.length; i++){
        if(obj1[a[i]]>0){
            obj1[a[i]]++
        }else{
                   obj1[a[i]] = 1;
        }
 

        
    }
    for(let i =0; i<b.length; i++){
        let letter = b[i];
        if(!obj1[letter]){
            return false
        } else {
            obj1[letter]--
        }
    }
    return true;
}



validAnagram('aza', 'zaz')
EN

回答 1

Stack Overflow用户

发布于 2022-03-09 22:09:31

obj1[letter]有3例

  1. letter不存在于obj1中,在这种情况下,它的计算结果是undefined.
  2. letter存在于obj1中,值none-zero.
  3. letter存在于obj1中,值为零。

第二个案子很明显。字母存在并且值大于零,所以它会使我减少1。

案例一和案例三在JavaScript中被称为假值,并用!否定它们,将它们转换为true,这是有意义的。如果字母不存在或已经耗尽,因此值为零,则它不是一个恰当的行文。

换句话说,这个数值不会进一步下降到零。它将被捕捉到零,该算法返回false

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71416434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档