【问题标题】:Simplify Javascript Variables to Single Statement? [closed]将 Javascript 变量简化为单个语句? [关闭]
【发布时间】:2016-06-07 12:08:56
【问题描述】:

想知道是否可以将以下内容简化为一个变量定义:

var gpaEarned = '%%PATTERN:gpa%%'; //value for gpa is passed in dynamically
var gpa = gpaEarned.replace("Less than 2.0","1.9").replace("2.0-2.4","2.0").replace("2.5-2.74","2.5").replace("2.74-2.9","2.74").replace("3.0-3.4","3.0").replace("3.5 or Higher","3.5");

如果可能的话,我想做这样的事情:

var gpa = '%%PATTERN:gpa%%'.replace("Less than 2.0","1.9");

其中 '%%PATTERN:gpa%%' 是一个动态传入的值,该值的输出是一个字符串。此代码位于 DFP 广告管理系统中的广告素材中。

【问题讨论】:

  • 正如所写,replace() 调用都不会做任何事情,所以只需去掉第二行。显然,这不是您的意思,因此请考虑重新提出更多详细信息。
  • 写的代码没有意义。
  • "如果有可能的话" - 它确实可能的,并且会像那样工作。你真的试过了吗?

标签: javascript variables var statements


【解决方案1】:

在 JavaScript 中可以在一条语句中声明多个变量。

var one = 1;
var two = 2;
var three = 3;

一样
var one = 1, two = 2, three = 3;

...因此,在您的情况下,您可以使用如下语句声明:

var gpaEarned = '%%PATTERN:gpa%%', gpa = gpaEarned.replace("Less than 2.0","1.9").replace("2.0-2.4","2.0").replace("2.5-2.74","2.5").replace("2.74-2.9","2.74").replace("3.0-3.4","3.0").replace("3.5 or Higher","3.5");

如果您不需要任何 gpaEarned 变量,您也可以通过仅声明一个变量来做到这一点。这也是有效的:

var gpa = '%%PATTERN:gpa%%'.replace("Less than 2.0","1.9").replace("2.0-2.4","2.0").replace("2.5-2.74","2.5").replace("2.74-2.9","2.74").replace("3.0-3.4","3.0").replace("3.5 or Higher","3.5");

【讨论】:

  • 投了反对票吧?有什么解释吗?
  • 不知道为什么。我正在尝试您的解决方案。
  • 我没有投反对票,但问题是关于将其简化为一个变量,而您仍然有两个变量,您只是将两个 var 语句组合在一起。 OP 还询问了关于直接在字符串文字上调用 replace() 的问题,这可以正常工作。
  • 啊,我要么完全看错了,要么这发生在编辑中。我添加了一个解决方案,只为遇到线程的任何人声明一个变量。
  • 谢谢大家。为可能令人困惑的事情道歉。我也是一个新手(我的职业生涯是自学的),我所了解的大部分内容都归功于我公司的开发人员和互联网。
猜你喜欢
  • 2018-12-01
  • 2021-04-11
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多