第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 JavaScript 中使用三元運算符更改函數(shù)中的 if else 語句?

如何在 JavaScript 中使用三元運算符更改函數(shù)中的 if else 語句?

一只斗牛犬 2023-06-09 17:20:47
如何在 JavaScript 中使用三元運算符更改函數(shù)中的 if else 語句private getProductName(productType: string): string {    let productName = 'Product not found';    if(this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length > 0 && dp.children[0].product.productTypeCode == productType))){      productName = this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length > 0 && dp.children[0].product.productTypeCode == productType)).children[0].product.name;    }    else if(this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length === 0 && dp.product.productTypeCode === productType))){      productName = this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length === 0 && dp.product.productTypeCode === productType)).product.name;    }    return productName;}
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

該代碼非常低效,因為您找到了東西,然后轉身又找到了東西。所以你最終會循環(huán)多次。


為了使其更具可讀性,我將其分成幾部分。它還在對象上循環(huán)一次以定位有子項和沒有子項的項。那里有一個三元運算符來處理有無。


然后代碼確定它是否是孩子并抓住對象。


// Grab the package

var selectedPackageProducts = this.deal.packages.find(p => p.isSelected).dealProducts;


// check to see if the children has the product type or if the parent does (if no children)

const selectedProduct = selectedPackageProducts.find(dp => 

    dp.children.length > 0 ? 

    dp.children[0].product.productTypeCode === productType :

    dp.product.productTypeCode === productType)


// If we have children use it, else reference the parent

const productObj = selectedProduct && selectedProduct.children.length ? 

    selectedProduct.children[0] :

    selectedProduct;


// get the product name 

const productName = productObj && productObj.product.name


查看完整回答
反對 回復 2023-06-09
?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

為了證明兩件事,我冒著風險,進入了一個似乎是意見交鋒的戰(zhàn)場。

  1. 以干凈的代碼和可讀性為目標并不總是只是為了傳教士或“我比你更了解”的態(tài)度。這主要是為了自己(以及團隊中的一員)的安寧與健康,尤其是為了那些必須在不久之后甚至更晚維護此類代碼的人。

  2. 通過重構 OP 的代碼以提高可讀性,可以實現(xiàn)三件事:

  • 將重復和不必要的數(shù)據(jù)訪問減少到最必要的數(shù)據(jù),然后恰好一次。

  • 實際上使它明顯/可讀(因此更容易重構)一個人正在處理什么樣的數(shù)據(jù)。

  • 并最終實現(xiàn)了 OP 基于(嵌套)三元運算符的返回值的愿望,這在之前沒有清理的情況下并不是一件容易實現(xiàn)的任務。

private getProductName(productType: string): string {

  const defaultProductName = 'Product not found';


  const selectedPackageProductList = this.deal.packages

    .find(p => p.isSelected).dealProducts;


  const selectedProducts = selectedPackageProductList

    .find(dp => (dp.children.length > 0 && dp.children[0].product.productTypeCode === productType));


  const selectedProductItem = !selectedProducts && selectedPackageProductList

    .find(dp => (dp.children.length === 0 && dp.product.productTypeCode === productType));


  return selectedProducts

    ? selectedProducts.children[0].product.name

    : (selectedProductItem ? selectedProductItem.product.name : defaultProductName);

}


查看完整回答
反對 回復 2023-06-09
?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

不用寫: IF condition THEN do_a ELSE do_b你可以用同樣的方式使用三元運算符。


(condition) ? do_a : do_b;


具體的例子:


private getProductName(productType: string): string {

    return (this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length > 0 && dp.children[0].product.productTypeCode == productType)))

 ? this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length > 0 && dp.children[0].product.productTypeCode == productType)).children[0].product.name;

 : (this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length === 0 && dp.product.productTypeCode === productType)))

 ? this.deal.packages.find(p  => p.isSelected).dealProducts.find(dp => (dp.children.length === 0 && dp.product.productTypeCode === productType)).product.name;

 : 'Product not found';

}

順便提一句。我建議為do_aor提取方法do_b。


查看完整回答
反對 回復 2023-06-09
  • 3 回答
  • 0 關注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號