在 ramdajs 中根据条件构建复杂的字符串消息

问题描述 投票:0回答:0

构建消息以促进交易和客户积分。

var availableDeals = 20;
var activatedDeals = 5;
var maximumGems = 100;
var earnedGems = 70;

需要构建两个字符串

1. 5 of 20 deals activated, 70 of 100 gems earned, spend more to earn more gems.
2. 15 deals to activate, Just 30 more gems required to unlock a deal. // when required gems <=50 use 'Just'

当只剩下一笔交易/宝石时 2. 激活 1 个交易,只需再多 1 个宝石即可解锁交易。

尝试了以下

const getTitle = (activatedDeals, totalDeals, currentGems, maxGems, requiredGems) => {
 return R.cond([
   [R.equals(0), R.always('No deals to activate')], 
   [R.equals(activatedDeals), R.always('All deals activated')],
   [R.lt(activatedDeals), R.always(`${totalDeals - activatedDeals} deals to activate`)],
   [R.T, R.always('- deals to activate')], // Error scenario
 ])(
   totalDeals,
 ) +`, ${currentGems} of ${maxGems} gems, ${requiredGems} more gems to unlock a deal`;
}

当只需要一个 gem 时,如何连接具有各种条件的字符串以处理单一情况。

javascript string conditional-formatting ramda.js
© www.soinside.com 2019 - 2024. All rights reserved.