今天在做需求的时候,遇到一个小问题。 我想要得到一个有10个长度的对象数组,对象的结构是后端返回的object结构。
我的第一反应是
new Array(10)
, 然后map
得到这个对象数组。 但是,这样只会得到一个全是empty
的10个长度的数组。因为map
遍历遇到空值会跳过,但是不会跳过undefined和null
。
然后,就有了下面这个写法:
const a = Array.from({ length: 10 }, () => ({
id: 1,
uid: 1,
number: 'BB1234556',
coinid: 1,
direction: 1,
type: 1,
status: 1,
}))
MDN 的解释:
这个可迭代对象就很有意思。就不展开讲了。因为我也没搞懂,哈哈。后面再说。
1、Array.from第一个参数可以接受一个带length
属性的对象。他会为你创造一个数组。
2、第二个参数接收一个回调,而且回调跟map
的回调类似,更神奇的是,他不会创建中间数组,你可以直接对你创建出来的数组进行操作;
神奇不??!~~ 不要太好用啊。
=================================
然后,MDN上还有官方给的很多其他用法:
太宝藏了。 自己去看吧。
====================================
补充一下: 得到一个默认填充的数组,fill
也可以实现。
Array(3).fill({a:1})