Angular中基于数字生成连续整数数组的问题求助
嘿,我来帮你搞定这个问题!
首先咱们先理清两个核心问题:VSCode的fill()参数提示,以及生成的数组不符合预期的问题。
1. 解决VSCode的fill()参数提示
VSCode提示你fill()需要1-3个参数,是因为TypeScript的严格类型检查——虽然fill()的第一个参数在原生JS里是可选的,但TS会更严谨地要求你传入一个值。其实你可以传任意占位值,比如undefined或者null就行,因为后面的map方法会把这些填充值全部替换掉,完全不影响最终生成的数组。
2. 生成[1,2,3,4,5,6]的正确写法
你当前的map回调里返回的是i,而数组的索引是从0开始的,所以当numberofSlots为6时,生成的是[0,1,2,3,4,5],这就是为什么你得到的number值里包含0。要生成从1到6的数组,只需要把返回值改成i + 1就行。
修改后的代码片段
把你代码里的number部分改成这样:
number: Array(this.appointmentsData.numberofSlots).fill(undefined).map((x, i) => i + 1)
这样一来,当this.appointmentsData.numberofSlots的值为6时,就会生成你想要的[1,2,3,4,5,6]数组,同时VSCode的参数提示也会消失啦。
如果还有疑问,比如想确认numberofSlots是否真的拿到了6的值,可以在代码里加个日志检查:
console.log('numberofSlots:', this.appointmentsData.numberofSlots);
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

