我写了一些看起来像这样的代码:
state.intro = state.memoryCards[Math.floor(Math.random() * state.memoryCards.length)];
我认为这不是改变状态的正确方法,因此我在重构下面的代码,但是我不确定如何返回该memoryCards数组的一个索引。
intro: state.memoryCards.find(function(card, index) {
const randomIndex = Math.floor(Math.random() * state.memoryCards.length);
if(index === randomIndex) {
return card
}
})
答案 0 :(得分:1)
我想你是说
state.memoryCards.find(
(card, index) => index === Math.floor(
Math.random() * state.memoryCards.length
)
).type
(但是我不确定我了解你想要什么)
答案 1 :(得分:0)
在这种情况下,取决于您要从数组本身返回什么方法。
Map将返回一个数组,该数组的长度与被查看的数组的长度相同, 查找为方法将返回通过数组输入测试的第一个元素。
您具有适当的点差状态,因此首先将先前的状态输入到返回中,然后用新的状态覆盖记忆卡,并且(我猜是...) 输入该对象中其余的记忆卡,并用下一个类型值覆盖特定的索引
编辑:仅返回一张记忆卡值
intro: state.memoryCards.find((card, index) => {
const randomCard = Math.floor(Math.random() * state.memoryCards.length)
if(index === randomCard) {
return {
...state,
memoryCards: card.type
}
}
})