如何访问JS对象中嵌套项目的索引?

时间:2018-10-11 17:26:23

标签: javascript reactjs ecmascript-6 jsx

这可能是我应该添加解决此问题的地方,我坚持使用返回整个对象的索引,我的目标是打印单击项的索引,请有人帮忙

 const listItems = this.state.list.map((item, index) =>
        Object.values(item).map(nestedItem => (
        <div>
            <Card.Header>
                {nestedItem.title}
            </Card.Header>
            <div class="ui buttons fluid">
            <button
                onClick={() => this.upvote(index)}
            >
                UPVOTE
            </button>
        </div>
        ))
    );

下面的代码正常工作,只是我在此示例中对要查找的索引2进行了硬编码

console.log(Object.keys(this.state.list[index])[2]);

这是整个对象,我现在需要的只是它的索引

0: "-LORYsI9mLP8mu_2BTKS"
1: "-LORZVOq8SMUgTOPgpXK"
2: "-LORZtqZeg3nyOW4p9I1"
3: "-LOYbElg81jbPtao2nl4"
4: "-LOZ3pNNMAOtNxMWNDi4"

2 个答案:

答案 0 :(得分:2)

您只需要内部映射的索引吗?我仍然对这个问题感到困惑,但是也许像这样。

const listItems = this.state.list.map((item, index) =>
        Object.values(item).map((nestedItem, nestedIndex) => (
        <div>
            <Card.Header>
                {nestedItem.title}
            </Card.Header>
            <div class="ui buttons fluid">
            <button
                onClick={() => this.upvote(index, nestedIndex)}
            >
                UPVOTE
            </button>
        </div>
        ))
    );

如果这不起作用,您能发表一个数据结构示例吗?

这是文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Syntax

答案 1 :(得分:0)

如果您想要嵌套项目的索引,则需要在映射fn中有另一个变量

Object.values(item).map((nestedItem, nestedIndex) => <div>...</div>

,然后在nestedIndex方法中使用upvote变量