为什么我的代码中的所有日历都重复而不是更新月份值。在页面加载时,它显示从11月2019年到2020年4月的日历。单击getPreviousdata()时,它应仅将日历显示从 2019年10月至2020年3月。但从11月2019年至2019年4月以及从2019年10月至2020年3月显示。
我只想更新日历,而不是单击添加日历月。
也请检查stackblitz以便更好地理解
ngOnInit() {
const date = new Date();
let month = date.getMonth();
let year = date.getFullYear()
this.getMonths(year, month);
}
getMonths(year:number, month:number) {
for (let i = 0; i < 6; i++) {
this.months.push(new Date(year, month++));
console.log(this.months);
}
}
getNextData() {
const date = new Date();
let month = date.getMonth()+ 1;
let year = date.getFullYear()
this.getMonths(year, month);
}
getPreviousData(){
const date = new Date();
let month = date.getMonth() - 1;
let year = date.getFullYear()
this.getMonths(year, month);
};
答案 0 :(得分:2)
找到带有选定plan
的产品后,您可以使用Object.values
查找计划。
var data = {
products: {
medicare: {"11":"plan1", "12":"plan2", "13":"plan3", "14":"plan14"},
medigap: {"112":"plan12", "122":"plan22", "132":"plan32", "142":"plan142"}
}
}
var userSelected = 'medicare';
var product = data.products[userSelected];
var plans = Object.values(product);
console.log(plans);
答案 1 :(得分:1)
尝试这个:
function getPlan(plan) {
return Object.values(data.products[plan])
}
plan1
将是medicare
plan2
将是medigap
用法:
getPlan(plan1)
返回['plan1', 'plan2', 'plan3', 'plan14']
getPlan(plan2)
返回['plan12', 'plan22', 'plan32', 'plan142']
答案 2 :(得分:0)
data_sample = {
products: { medicare: {"11":"plan1", "12":"plan2", "13":"plan3", "14":"plan14"},
medigap: {"112":"plan12", "122":"plan22", "132":"plan32", "142":"plan142"}
}}
plan1 ="medicare";
plan2 = "medigap";
var get_data = data_sample['products'][plan2];
var list = []
for (const [key, value] of Object.entries(get_data)) {
console.log(value);
list.push(value);
}
console.log(list);
尝试这种逻辑。您需要付出一些努力来重构它。
答案 3 :(得分:0)
在循环中动态传递计划名称,您将获得所需的结果。
plan1 = 'medicare';
plan2 = 'medigap';
resultArr = [];
Object.entries(data.products[plan1]).forEach(([key, value]) => {
resultArr.push(value);
});
console.log(resultArr);