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

如何高效检测JavaScript对象中是否恰好仅有一个值已定义?

实现方案

可以通过以下方式实现foo函数,简洁高效地检查对象中是否恰好仅有一个值不为undefined:

function foo(x) {
  return Object.values(x).filter(val => val !== undefined).length === 1;
}

逻辑说明

  • Object.values(x):提取对象的所有值,组成一个数组。
  • filter(val => val !== undefined):过滤掉数组中值为undefined的元素,只保留已定义的值。
  • length === 1:判断过滤后的数组长度是否恰好为1,是则返回true,否则返回false。

验证示例

针对你给出的三个对象:

  • obj:过滤后数组长度为1,foo(obj)返回true
  • otherobj:过滤后数组长度为0,foo(otherobj)返回false
  • anotherobj:过滤后数组长度为3,foo(anotherobj)返回false

因此原代码中的if条件会触发alert("!!!"),符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:12:29