有没有一种方法可以设置条件,使一个参数根据另一个参数而不同?Javascript

Is there a way to set a condition, making one parameter different depending on another parameter? Javascript

本文关键字:参数 另一个 Javascript 一个 方法 一种 设置 有没有 条件      更新时间:2023-09-26

我的报告中有一个发生在This_year的参数,我需要根据This_year是什么来填充Last_yr参数上的空白。

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

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

在这种情况下不清楚"this"是什么!但假设以下对象:

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";
因此,您可以在parameters对象上设置带有值的属性,如:
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年,而"1/1/2014"将返回2014年。

希望这对你有帮助!

我不知道你是什么意思;像这样:

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

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

当我们调用函数并将日期(-object)传递给参数thisYear: year(new Date())而不带第二个参数时,第二个参数自动变为今年的-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);
相关文章: