如何返回数组的一个索引对象(而不是整个数组)

时间:2019-06-24 21:18:36

标签: reactjs redux

我写了一些看起来像这样的代码:

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
                    }
                })

2 个答案:

答案 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
        }
    }
})