You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codewars不区分大小写统计x与o数量题x && x.length代码逻辑解释

Codewars题目代码x && x.length逻辑解释

题目的核心需求为:统计输入字符串中x/X和o/O的数量是否相等,返回布尔值,统计不区分大小写,字符串可包含任意字符。

前置知识:String.match()的返回规则

str.match(正则)的返回值只有两种情况:

  • 匹配到符合规则的字符:返回存储所有匹配结果的数组,数组length就是匹配到的总个数
  • 没有匹配到任何符合规则的字符:返回null,而非空数组

x && x.length的核心逻辑

这里用到了JavaScript的逻辑与(&&)短路求值特性,本质是为了避免访问null的属性报错,同时兼容无匹配的场景:

  • 如果x是null(也就是字符串里没有任何x/X):&&会直接返回第一个假值null,不会执行后面的x.length,彻底避免了Cannot read properties of null (reading 'length')的报错
  • 如果x是匹配结果数组(字符串里有x/X):&&会返回第二个表达式的结果,也就是x.length,即x/X的总个数

完整返回语句的判断逻辑

return (x && x.length) === (o && o.length)覆盖了所有边界场景:

  • 字符串里既没有x也没有o:两边都返回null,null === null为true,符合0=0的预期
  • 只有x没有o/只有o没有x:一边返回数字,一边返回null,严格相等判断为false,符合预期
  • 两者都有:直接比较数量是否相等,符合需求

内容的提问来源于stack exchange,提问作者misssn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:15:02