有没有办法设置条件,根据另一个参数使一个参数不同?使用Javascript

时间:2014-05-12 14:22:44

标签: javascript parameters this

我的报告中有一个参数发生在This_year,我需要根据This_year的内容填充Last_yr参数的空白。

if(params["This_year"] == "1/1/14"){
this.params = this.params.replace("Last_year", "2013")}

这是怎么做的,或者甚至可能吗?

2 个答案:

答案 0 :(得分:2)

目前还不清楚在这种情况下“这个”是什么!但假设有以下对象:

params = {
   This_year: "1/1/14",
   keyA : "valueA",
   keyB : "valueB"
};

如果为params分配值,则基本上会覆盖它,例如:

params = null;

params.hasOwnProperty("This_year") will return false!

我想知道为什么你说“让X变得不同”,所以我假设你的意思是,改变现有的键值:

params = {
   This_year: "1/1/14",
   Last_year: "xxxx"
};

params.Last_year = "YYYY";

因此,您可以在参数对象上设置一个具有值的属性,如:

var params = { This_year: "1/1/14" }; 

if (params.hasOwnProperty("This_year") && params.This_year === "1/1/14") { 

   params["Last_year"] = "2013"; 

}

我建议将日期标准化,因此您不需要硬类型:

if (params.hasOwnProperty("This_year") && params.This_year === "1/1/2014") { 

  params.Last_year = ( new Date("1/1/14").getFullYear() - 1);

}

由于“1/1/14”将返回1914年,“2014年1月1日”将返回2014年。

希望这有帮助!

答案 1 :(得分:1)

我不确定你的意思;像这样的东西:

这里我们有一个函数year,它接受​​两个参数(=参数)。 第一个是必需的,第二个是可选的:

function year(thisYear, lastYear) {
    lastYear = lastYear || thisYear.getFullYear()-1;

    alert(thisYear, lastYear);
}

当我们调用函数并将日期(-object)传递给参数thisYearyear(new Date())而没有第二个参数时,第二个参数自动变为thisYear的年份-1。

当然,我们在这里做的事情取决于我们使用的对象(Date)。如果您不想这样做,我们可以使用您的日期格式(dd / mm / yyyy)制作自定义函数:

function getLastYear(dateString) {
    var dates = dateString.split('/');

    if (dates.length>=3) {
        //    we assume:
        //    dates[0] = day
        //    dates[1] = month
        //    dates[2] = year.
        return dates[0] + '/' + dates[1] + '/' + (dates[2]-1);
    }
}

现在我们可以将其用于以下内容:

var lastYear = getLastYear(thisYear);