使用拆分流行音乐并一次加入所有内容可以工作



我真的很喜欢Javascript,我这样写代码。我觉得它应该有效。我做的顺序是错误的吗?如果它不能像这样工作,为什么不呢?

var mydate = new Date();
alert( mydate.toLocaleTimeString().split(":").pop().join(':'));

split()使它成为一个数组,pop()去掉数组的末尾,join()又使它成为一个字符串,对吗?

您可以将

Array#slice与负结束/秒参数一起使用。

Array#pop 返回最后一个元素,但不返回数组本身。 slice返回数组的副本,其中包含从 start 开始的所有模拟,而不返回最后一个元素。

var mydate = new Date();
console.log(mydate.toLocaleTimeString().split(":").slice(0, -1).join(':'));

不,pop() 将从数组中删除最后一个元素并返回它

要实现您正在尝试的操作,您需要首先将split()的结果分配给一个变量,然后您可以引用:

var mydate = new Date(),
    myarr  = mydate.toLocaleTimeString().split(':');
    myarr.pop();
console.log(myarr.join(':'));

如果你想实现的只是小时:分钟,你可以简单地这样做

var mydate = new Date();
console.log(mydate.getHours() + ':' + mydate.getMinutes());

您正在尝试使用方法链,其中链中的下一个方法使用先前执行的方法的输出。它不起作用的原因是因为"join(("方法是数组的原型,但"pop(("返回一个数组元素,该元素没有上述方法,这就是错误的原因。重构代码,如下所示:

  var myDate = new Date(),
      myDateArr = myDate.toLocaleTimeString().split(':');
  myDateArr.pop(); // Remove the seconds
  myDate = myDateArr.join(':'); // Returns string
  console.log(myDate);

希望这有帮助。

试试这个

var mydate = new Date();
alert( mydate.toLocaleTimeString().split(":").slice(0, 2).join(":"));

最新更新