Javascript 如何重构react中嵌套的三元运算符

Javascript 如何重构react中嵌套的三元运算符,javascript,reactjs,Javascript,Reactjs,我在重构遗留react代码时遇到了包含嵌套三元运算符的代码: const categoriesList = getCategoryById(store, params[param]) ? getSubcategoriesToDisplay(store, params[param]).length > 0 ? [ getCategoryById(store, params[param]), ...ge

我在重构遗留react代码时遇到了包含嵌套三元运算符的代码:

const categoriesList = getCategoryById(store, params[param])
        ? getSubcategoriesToDisplay(store, params[param]).length > 0
          ? [
              getCategoryById(store, params[param]),
              ...getSubcategoriesToDisplay(store, params[param]),
            ]
          : [getCategoryById(store, params[param])]
        : getCategoriesForOfferPage(store);

问题是有没有一种方法可以通过重构使其更具可读性。

“有没有一种方法可以通过重构使其更具可读性”-是的,有。你已经自己试过了吗?你的转换有问题吗?错误?还有别的吗@DrewReese,我尝试使用if语句而不是三元语句,但代码似乎仍然不可读。请分享您尝试过的内容。如果您的代码有效,您可能希望尝试在
let result;
const getCategoryResults = getCategoryById(store, params[param]);
const getSubCategoryResults = getSubcategoriesToDisplay(store, params[param]);
if(getCategoryResults){
    result = getSubCategoryResults.length ? [...getCategoryResults, ...getSubCategoryResults] : [...getCategoryResults];
} else {
    result = getCategoriesForOfferPage(store);
}