首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >三元三条件Javascript

三元三条件Javascript
EN

Stack Overflow用户
提问于 2022-03-25 01:55:23
回答 2查看 69关注 0票数 -2

我有这个结构

代码语言:javascript
运行
复制
const name = user.name;
const email = user.email;
const doc = user.doc;
const paramsSearch = req?.params?.search;
const search = …;

我想把搜索转换成三元结构,比如:

代码语言:javascript
运行
复制
const search = paramsSearch === user.name ? …

如果它等于名称、电子邮件或文档,那么搜索将是其中之一,否则返回一个空字符串。

我已经尝试过如果其他条件,但我需要它的三元

EN

回答 2

Stack Overflow用户

发布于 2022-03-25 02:02:19

你可以试试这样的东西。

代码语言:javascript
运行
复制
const search =
  paramsSearch === name
    ? name
    : paramsSearch === email
    ? email
    : paramsSearch === doc
    ? doc
    : "";
票数 0
EN

Stack Overflow用户

发布于 2022-03-25 11:12:35

如果我正确理解它,我们有一个搜索值,它应该与user.nameuser.emailuser.doc匹配。如果它不匹配,那么我们必须在搜索中分配一个empty字符串。

您可以通过不同的方式( )来实现这一点。

  1. 使用嵌套的三值运算符。

代码语言:javascript
运行
复制
const paramSearch = 'alpha';
const user = {
  name: 'alpha',
  email: 'alpha@gmail.com',
  doc: 'document1',
}

const search = (paramSearch === user.name) ? user.name
    : (paramSearch === user.email) ? user.email
    : (paramSearch === user.doc) ? user.doc
    : '';
    
console.log(search);

  1. 我们可以通过使用Array.find()的JavaScript方法来实现它。

代码语言:javascript
运行
复制
const paramSearch = 'alpha';
const user = {
  name: 'alpha',
  email: 'alpha@gmail.com',
  doc: 'document1',
}

// Using Object.values() method to get the array of object values and then using Array.find() getting the matched element.
const search = Object.values(user).find(elem => elem === paramSearch) 

// Using nullish operator to assign empty string if search is undefined or null
console.log(search ?? '')

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

https://stackoverflow.com/questions/71611324

复制
相关文章

相似问题

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