首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在n个值中,检查是否确切地定义了一个

问在n个值中,检查是否确切地定义了一个
EN

Stack Overflow用户
提问于 2022-08-31 12:31:06
回答 1查看 50关注 0票数 0

我有一个JS对象(键值对),这些值可以是未定义的。但是,如果只定义了值的一个,我希望代码可以执行其他操作。最简单、最有效的检查方法是什么?(请参阅下面的片段以澄清)

​

代码语言:javascript
复制
let obj = {x:undefined, y:undefined, z:1337}
let otherobj = {x:undefined, y:undefined, z:undefined}
let anotherobj = {x:1,y:2,z:3}

if(foo(obj) && !foo(otherobj) && !foo(anotherobj)){
  alert("!!!");
}

function foo(x){
  return true; // ???
}

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-31 12:39:46

,但如果只定义了其中一个值,则代码将执行其他操作。

您可以使用filter只获取非“未定义”的值。

THen使用.length === 1检查它是否正好是1值

​

代码语言:javascript
复制
let obj = {x:undefined, y:undefined, z:1337}
let otherobj = {x:undefined, y:undefined, z:undefined}
let anotherobj = {x:1,y:2,z:3}

console.log('Test 1', objHasOneValue(obj));           // true
console.log('Test 2', objHasOneValue(otherobj));      // false
console.log('Test 3', objHasOneValue(anotherobj));    // false

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

​

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

https://stackoverflow.com/questions/73555949

复制
相关文章

相似问题

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