我的报告中有一个参数发生在This_year,我需要根据This_year的内容填充Last_yr参数的空白。
if(params["This_year"] == "1/1/14"){
this.params = this.params.replace("Last_year", "2013")}
这是怎么做的,或者甚至可能吗?
答案 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)传递给参数thisYear
:year(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);