简体   繁体   English

JavaScript:使用条件语句解构

[英]JavaScript: destructuring with a conditional statement

I would like to get firstName and lastName properties from a whole user object. I need to use a conditional statement too.我想从整个user object 获取firstNamelastName属性。我也需要使用条件语句。 How to do something like that?如何做这样的事情?

getUserById(id) and getUserByAddress(id) use the JavaScript find() method that returns an element or undefined . getUserById(id)getUserByAddress(id)使用返回元素或undefined的 JavaScript find()方法。

let { firstName, lastName } = getUserById(id);
if ({ firstName, lastName } === undefined) {
  { firstName, lastName } = getUserByAddress(id);
}
return `${firstName} ${lastName}`;
const { firstName, lastName } = getUserById(id) || getUserByAddress(id) || {};
if (firstName && lastName) {
    return `${firstName} ${lastName}`;
}
return "Unknown user";

If getUserById(id) is falsy, getUserByAddress(id) will be executed. 如果getUserById(id)是假的, getUserByAddress(id)执行getUserByAddress(id) If this is falsy, too, {} will at least prevent throwing an error. 如果这也是假的, {}将至少防止抛出错误。

const episodeParser = (
    query: string, codeType ?: string, productId?: number, newProductId?: number
  ) => {
    let queryParams = { 
      query, 
      codeType, 
      processId : AppConfig.PROCESS_ID,
      ...(productId && {productId}),
      ...(newProductId && {newProductId})
    };
    return queryParams;
  }

Here, productId and newProductId both are optional, whatever the value of id will be there, these key will be getting in queryParams.在这里, productIdnewProductId都是可选的,无论 id 的值是什么,这些键都会在 queryParams 中获取。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM