GVKun编程网logo

有没有更好的方法在JavaScript中执行可选函数参数?[重复](js 可选参数)

8

最近很多小伙伴都在问有没有更好的方法在JavaScript中执行可选函数参数?[重复]和js可选参数这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展java–有没有更好的方法来处理

最近很多小伙伴都在问有没有更好的方法在JavaScript中执行可选函数参数?[重复]js 可选参数这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展java – 有没有更好的方法来处理将多个参数传递给方法、Javascript - 有没有更好的方法根据字符串的长度拆分字符串?、javascript – 使用parent()三次,有更好的方法吗?、javascript – 保持我的网站更新 – 有更好的方法吗?等相关知识,下面开始了哦!

本文目录一览:

有没有更好的方法在JavaScript中执行可选函数参数?[重复](js 可选参数)

有没有更好的方法在JavaScript中执行可选函数参数?[重复](js 可选参数)

我一直像这样处理JavaScript中的可选参数:

function myFunc(requiredArg,optionalArg){
  optionalArg = optionalArg || 'defaultValue';

  // Do stuff
}

有更好的方法吗?

有没有在这种情况下使用||会失败的情况?

java – 有没有更好的方法来处理将多个参数传递给方法

java – 有没有更好的方法来处理将多个参数传递给方法

我发现自己做了很多事情:

/**
 * Redirect to a MVC controller&action
 * @param controller
 * @param action
 */
public void redirect(String controller,String action) {
    redirect(controller,action,new HashMap<String,String>());
}
/**
 * Redirect to a MVC controller&action with extra URL parameters
 * @param controller
 * @param action
 * @param data
 */
public void redirect(String controller,String action,Map<String,String> data) {
    String urlParameters = "";
    for(String key : data.keySet()) {
        urlParameters += "&" + key + "=" + data.get(key);
    }
    m_binder.putLocal("RedirectParams","IdcService=MVC_FRONTCONTROLLER&controller="+controller+"&action="+action + urlParameters);
}

要调用第二种方法,我实际上需要创建一个hashmap来在其中添加数据,我想知道是否有更方便的方法来实现这一点?

正如您所看到的,我需要知道密钥和值,因此varargs不起作用(据我所见).

我对所有想法持开放态度,包括使用反思.

解决方法

我曾经为构建地图编写了这种方便的方法.它需要varargs并成对地制作一张地图.要在测试代码中创建简单的地图,这非常方便.您需要确保获得正确的参数数量,但我喜欢它,因为它使代码量变小.

@SuppressWarnings("unchecked")
public static <K,V> Map<K,V> mapOf(K key,V value,Object... morePairs) {
    Map<K,V> map = new HashMap<K,V>();
    map.put(key,value);
    for (int i=0; i<morePairs.length; i+=2) {
        map.put((K)morePairs[i],(V)morePairs[i+1]);
    }
    return map;
}

然后你可以使用以下方法创建地图:

Map<String,String> map = mapOf("One","1","Two","2");

然而,这不是每个人的一杯茶(因为缺乏类型安全性),所以你可以改变实施来成对:

Map<String,String> map = mapOf(pair("One","1"),pair("Two","2"));

将pair定义为静态方法,创建包含两个值的简单对象,然后将mapOf转换为Map中的Entries.

Javascript - 有没有更好的方法根据字符串的长度拆分字符串?

Javascript - 有没有更好的方法根据字符串的长度拆分字符串?

如何解决Javascript - 有没有更好的方法根据字符串的长度拆分字符串??

我用字符串表示一天中的时间,即。 (830、1450、1630)。我知道我可以做简单的 if 语句来检查长度是 3 还是 4 并退出 (8) 和 (30) 或 (14) 和 (50),但是有没有更干净的方法来分割小时和分钟而不用必须检查 if 语句?

解决方法

Regular Expressions 有一个简单的方法,虽然语法看起来有点奇怪。

/^(\d{1,2})(\d{2})$/
/                  /    starts/stops regex definition
 ^                      matches from the start of the string (not a random middle location)
  (       )(     )      match two groups
   \d                   a digit...
     {1,2}              that needs to exist 1 or 2 times
            \d          a digit...
              {2}       that needs to exist two times

在代码中使用,它看起来像这样:

const times = ["830","1520","1015"];
const regex = /^(\d{1,2})(\d{2})$/;

const extractTime = (s) => s.match(regex).slice(1,3);

times.map(extractTime).forEach(([hours,minutes]) => console.log({
  hours,minutes
}))

,

String.prototype.slice 提供了一种简单的方法来做到这一点,因为负数被解释为从字符串的末尾开始。

minutes = s.slice(-2)    // last two characters of s
hours = s.slice(0,-2)   // from first character up to but not including last two characters
,

如果你知道你的时间总是以 HH:mm 表示,你可以填充字符串然后切片。

const parseTime = (time: string): [string,string] => {
   const timePadded = time.padStart(4,0)
   return [timePadded.slice(0,2),timePadded.slice(2,4)]
}

parseTime("830") # ["08","30"]
parseTime("1430") # ["14","30"]
,

const a = [830,1450,1630];

a.forEach((item) => {
  console.log(''Hour = '' + (''0'' + item).slice(-4).substring(0,2) + '' Minute = '' + item.toString().slice(-2));
});

a.forEach((item) => {
  console.log(''Hour = '' + (''0'' + item).slice(-4,-2) + '' Minute = '' + item.toString().slice(-2));
});

javascript – 使用parent()三次,有更好的方法吗?

javascript – 使用parent()三次,有更好的方法吗?

我有一些看起来像这样的代码:

jQuery(this).parent().parent().parent().parent().next(".results-table").css("display","block");

基本上,在单击表格内部的链接后,将显示以下结果表,问题是此链接位于tr内部,这当然是在一个表内,因此是重复的父选择器.

有没有更好的办法让我失踪?遗憾的是,我没有很多jQuery的经验.

解决方法

jQuery(this).parents("table").next(".results-table").css("display","block");

要么

jQuery(this).closest("table").next(".results-table").css("display","block");

javascript – 保持我的网站更新 – 有更好的方法吗?

javascript – 保持我的网站更新 – 有更好的方法吗?

我有一个网站向我展示了谷歌的一些东西(基本上只是玩).

我在我的网站上使用python-flask,它管理Google REST API调用并返回它们.之后我使用javascript“打印”我网站上的信息.

现在,在我的js中,我每隔5秒调用一次自己的站点,因此在python中执行新的REST API调用,以使我的数据保持最新.有没有更好的方法?我仍然想使用REST API.

解决方法

如果您想限制从您的站点流出的流量,那么您可以提前从REST API获取数据,将其存储在数据库中,然后仅将其提供给用户.

enter image description here

这当然只有在所有用户获得相同数据(不是用户特定的)时才有效.

关于有没有更好的方法在JavaScript中执行可选函数参数?[重复]js 可选参数的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于java – 有没有更好的方法来处理将多个参数传递给方法、Javascript - 有没有更好的方法根据字符串的长度拆分字符串?、javascript – 使用parent()三次,有更好的方法吗?、javascript – 保持我的网站更新 – 有更好的方法吗?的相关知识,请在本站寻找。

本文标签:

上一篇由于路径差异java,spring mvc,velocity而找不到JS / CSS文件(因为该路径太复杂)

下一篇在Java中获取随机布尔值(在java中获取随机布尔值的方法)