我正在使用faker.js
库生成随机数据,我有几个工厂函数可以生成一系列用户数据:
const createUser = () => {
return {
name: faker.name.findName(),
email: faker.internet.email(),
address: faker.address.streetAddress(),
bio: faker.lorem.sentence(),
image: faker.image.avatar()
}
}
const createUsers = (numUsers = 5) => {
return Array(numUsers).fill(createUser());
}
let fakeUsers = createUsers(5)
console.log(fakeUsers)
此Array.fill
方法的问题在于它返回相同的数据n
次。我希望从我的工厂退回5个不同的用户。
我该怎么做?
答案 0 :(得分:6)
创建一个包含空格的数组,然后使用<textarea (change)="textAreaEmpty(textValue.value)" #textValue></textarea>
创建用户:
.map()
答案 1 :(得分:4)
Array.from允许您创建一个数组并使用回调函数返回的值进行初始化:
const createUsers = (numUsers = 5) => {
return Array.from({length: numUsers}, createUser);
}
答案 2 :(得分:1)
通过Array构造函数创建数组将产生不可映射(或可迭代)数组。
这是因为构造函数会为您提供一个包含X未初始化值的数组,导致 map 失败。使用填充初始化值,即使初始化为null
或undefined
,也可以使用:
const createUser = () => {
return {
name: faker.name.findName(),
email: faker.internet.email(),
address: faker.address.streetAddress(),
bio: faker.lorem.sentence(),
image: faker.image.avatar()
}
}
const createUsers = (numUsers = 5) => {
return new Array(numUsers)
.fill(undefined)
.map(createUser);
}
let fakeUsers = createUsers(5)
console.log(fakeUsers)
答案 3 :(得分:1)
以下是通过TCO递归函数完成此工作的另一种方法;
const createStoreWithMiddleware = applyMiddleware(promiseMiddleware)(createStore); // App works again
&#13;