注册表单出生日期模块疑问:为何代码返回12个对象的数组?
为什么你的
months数组会返回12个对象? 我来帮你拆解清楚这个问题~
先看你给出的代码片段:
let months= [ {month: 'January', days: 31}, {month: 'February', days: 28}, {month: 'March', days: 31}, {month: 'April', days: 30}, {month: 'May', days: 31}, {month: 'June', days: 30}, {month: 'July', days: 31}, {month: 'August', days: 31}, {month: 'September', days: 30}, {month: 'October', days: 31}, {month: 'November', days: 30}, ... ]
你已经手动列出了11个月份对象,而数组末尾的...是JavaScript的扩展运算符——它的作用是把一个可迭代对象(比如另一个数组、类数组对象等)里的元素逐个“展开”并添加到当前数组中。
所以数组最终有12个对象的原因非常明确:
- 你手动写的11个对象 + 扩展运算符展开进来的1个对象,刚好凑够12个。
结合你做注册表单的场景,大概率是...后面跟着的是包含12月(December)的数组,比如:
...[{month: 'December', days: 31}]
展开这个数组后,里面的{month: 'December', days: 31}就会被加到原数组末尾,总数自然变成12个啦。
如果你的...后面是其他内容(比如一个存储了单月份对象的变量),原理也是一样的——扩展运算符把那个可迭代对象里的1个元素加了进来,让总数从11变成12。
内容的提问来源于stack exchange,提问作者Sanjay
相关产品推荐
相关产品推荐

