【问题标题】:Javascript Refactoring Assistance Needed需要 Javascript 重构协助
【发布时间】:2014-02-06 19:51:33
【问题描述】:

我已经编写了这段代码(javascript 倒计时),我必须将其中的 141 个放在页面上。有人知道是否有某种方式(程序、脚本等)可以执行以下操作: 从function cdtd1 更改为function cdtd2var sad1 = new Date(); 更改为var sad2 = new Date(); 等。

var d = new Date();
var n = d.getDay();
if(n == 1 || n == 2 || n == 3 || n == 4 || n == 5){
var timer1;
function cdtd1() {
    var sad1 = new Date();
    var dolazak1 = new Date(sad1.getFullYear(),sad1.getMonth(),sad1.getDate(),23,00,00);
    var timeDiff1 = dolazak1.getTime() - sad1.getTime();
    if (timeDiff1 <= 0) {
        clearInterval(timer1);
        $('#dani1Box').remove();
        $('#sati1Box').remove();
        $('#minute1Box').remove();
        $('#sekunde1Box').remove();


    }
    var sekunde1 = Math.floor(timeDiff1 / 1000);
    var minute1 = Math.floor(sekunde1 / 60);
    var sati1 = Math.floor(minute1 / 60);
    var dani1 = Math.floor(sati1 / 24);
    sati1 %= 24;
    minute1 %= 60;
    sekunde1 %= 60;

    $("#dani1Box").html(dani1);
    $("#sati1Box").html('7-Dubrava ' + sati1 + ':');
    $("#minute1Box").html(minute1 + ':');
    $("#sekunde1Box").html(sekunde1);

    timer1 = setTimeout(cdtd1, 1000);
}

$(document).ready(function() {
     cdtd1();
});
}

【问题讨论】:

    标签: javascript ide editor


    【解决方案1】:

    我相信您正在寻找的是一个 javscript 循环操作。

    for(var i = 1; i <= 141; i++) {
      console.log(i);
      // put code in here that has to run 141 times modifying the html target elements by using string concatenation
      $('#target' + i);  // This would be come #target1, #target2, #target3 etc up to 141
    }
    

    您特别询问了变量重命名的问题,在这种情况下,这是不必要的,因为您在每次循环中都重用了变量。

    由于您正在处理时间信息,您可能需要查看此 Javascript 库:http://momentjs.com/ 并查看此特定部分的一些信息:http://momentjs.com/docs/#/durations/

    【讨论】:

    • 谢谢,但我必须修改多个变量,我该怎么做?
    • 您学习过哪些教程来帮助您理解循环、变量以及程序流程和执行的一些基本概念?我可以重写您的代码并解决您遇到的问题,但这对您来说并不是一个学习的机会。 w3schools.com/js/js_intro.asp 可能是一个不错的起点。 :-)
    • 我读过的所有教程都来自 w3schools。我认为代码应该是这样的: for(var i = 1; i
    • 出于性能原因,您只需要一个计时器来更新所有显示的 140 个项目的倒计时值。使用一次 window.setTimeout 调用一个函数,然后循环遍历所有 140 个倒数计时器并适当地更新它们。
    • 大声笑我不明白。你能给我一些示例代码吗?
    【解决方案2】:

    JetBrains Webstorm 具有出色的 javascript 重构功能,包括重命名对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      相关资源
      最近更新 更多