- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使那些 javascript 语句看起来更具可读性。可以使用功能库 ramda.js 使这段代码看起来更好吗?
var getTextSpace = function(len)
{
var tlength;
if (len >= 1 && len <= 4) {
tlength = 10;
} else if (len === 5) {
tlength = 14;
} else if (len === 6) {
tlength = 16;
} else if (len === 7) {
tlength = 18;
} else if (len >= 8 && len <= 10) {
tlength = 20;
} else if (len === 11) {
tlength = 22;
} else if (len === 12) {
tlength = 24;
} else if (len >= 13 && len <= 15) {
tlength = 26;
} else if (len === 16) {
tlength = 28;
} else if (len >= 17 && len <= 20) {
tlength = 32;
} else if (len >= 21 && len <= 34) {
tlength = tlength * 2;
} else if (len >= 35 && len <= 80) {
tlength = Math.round((len + len / 100 * 50));
}
else {
tlength = Math.round((len + len / 100 * 30));
}
return tlength;
};
提前谢谢你。
也许可以做一些允许这样做的事情?
value
.between(2,20).then(20)
.between(21,22).then(0)
.greater(25).then(25))
.less(30).then(function(value) {return value * 20 )})
最佳答案
Ramda 可能会有所帮助。但最主要的是以可读的方式构建你的范围。下面的代码假定输入值为整数,您不需要测试其他数字类型。那些可以完成,但是你需要比这里简单的 between
更复杂的东西。您需要多个函数或一种配置函数的方法来确定开头和结尾是否包含在内。
var getTextSpace = (function() {
// :: (Int, Int) -> (Int -> Bool)
var between = (begin, end) => R.both(R.gte(R.__, begin), R.lt(R.__, end));
return R.cond([
[between(1, 5), R.always(10)],
[between(5, 6), R.always(14)],
[between(6, 7), R.always(16)],
[between(7, 8), R.always(18)],
[between(8, 11), R.always(20)],
[between(11, 12), R.always(22)],
[between(12, 13), R.always(24)],
[between(13, 16), R.always(26)],
[between(16, 17), R.always(28)],
[between(17, 21), R.always(32)],
[between(21, 35), R.multiply(2)], // assuming original was typo
[between(35, 80), len => Math.round(len + len / 100 * 50)],
[R.T, len => Math.round(len + len / 100 * 30)]
]);
}());
(原来的情况好像有bug:
} else if (len >= 21 && len <= 34) {
tlength = tlength * 2;
我猜是什么意思
} else if (len >= 21 && len <= 34) {
tlength = len * 2;
我在这里编写了等效代码。)
你可以在 Ramda REPL 上看到这个 Action .
关于javascript - 如何使这段代码更具功能性和可读性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34048043/
这纯粹是一个练习,但给出以下代码: var someCondition = (....); var res = []; if (someCondition) { res.push("A"); }
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 6年前关闭。
Heinrich Apfelmus慷慨地插话this问题。我曾考虑过使用 accumB作为解决方案,但认为会出现类型错误。无论如何,在尝试了他的建议之后,我确实收到了类型错误。 let bGameSt
我需要访问 React 组件中的 window 对象以从查询字符串中获取某些内容。这就是我的组件的样子: export function MyComponent() { return (
我如何声明接受数字和数字列表的函数,如果列表中没有这样的数字则返回 NONE,否则返回列表选项(Haskell 中的“Maybe”)没有这个数字?如果有多个这样的数字,函数必须只删除其中的第一个。 a
类型的值如何: type Tree = | Node of int * Tree list 有一个以函数方式生成的引用自身的值? 对于合适的 Tree 定义,结果值应等于以下 Python 代
我一直在脚本(数据科学工作)中使用 F# 并开发与 C# 一起使用的类库。在后一种情况下,我一直在使用纯功能代码创建模块。 如果我想开始完全在 F# 中开发大型应用程序,我不确定我会如何构建它。我发现
对于用函数式语言创建 GUI 的方法已经有很多研究。有用于推/拉 FRP、基于箭头的 FRP 以及可能还有其他高级研究的库。 Many people似乎同意这是更原生的方式,但几乎每个人似乎都在使用命
我现在正在 Traveler 中尝试处理独立于玩家的游戏状态更新。作为引用,该项目是 here (开发分支是与此问题相关的分支)。 Libraries/Universe/GameState.hs 有一
这里有 2 个对象: object1: { email: somevalue url: somevalue description: somevalue } object2:
我正在使用 Keras 函数式 API 创建一个神经网络,它将词嵌入层作为句子分类任务的输入。但是我的代码在连接输入层和嵌入层的开始就中断了。按照 https://medium.com/tensorf
为什么不能编译? #include #include class A { A() { typedef boost::function FunctionCall;
我很清楚为什么我们需要函数式 setState 以及它是如何工作的,例如 this.setState((prevState, props) => ...); 您可以像上面那样获取先前的状态作为参数。
我最近一直在研究使用 Javascript 进行的函数式编程,对此我是个菜鸟。 在编写一些“map”、“reduce”和“find”函数时,我发现从 JS 1.5 版开始,这些函数已经可用(参见 ht
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我正在寻找一种用于 HTML 表管理的一体化解决方案。我想要完成的是为用户提供简单的表管理,该管理将提供按列排序、过滤数据(每列或每表全局)、移动列(更改其顺序)和切换列可见性。 基本上是 ExtJS
我不明白其中的错误。我正在尝试使用 std::function 将成员函数作为参数传递。除了第 4 种也是最后一种情况外,它工作正常。 void window::newGame() { } //sho
我是 Scala 和函数式编程的初学者,我有一些算法代码可能有一些味道,因为它使用了可变性,但也有一个错误,部分原因是它是可变的。我有两组二维点。第 1 组中的每个点都与第 2 组中最近的点相关联(给
我正在尝试使用 Keras 实现带有负采样的 Word2Vec CBOW,遵循发现的代码 here : EMBEDDING_DIM = 100 sentences = SentencesIterato
我绝对为此失去了理智。我不明白为什么会这样。每次我运行此测试时,该对象都会保存到正常的非测试数据库中。然而,测试结束时的两个断言无论如何都失败了,说他们无法在数据库中找到任何用户,即使每次测试运行时我
我是一名优秀的程序员,十分优秀!