javascript - 如何从javascript中的对象值返回键?

标签 javascript reactjs object key-value

我在 React 中有一个对象,我映射了它并希望使其交互:我希望当用户单击某个元素旁边的“X”按钮时,它会 console.log 该单击元素的键。

这是对象:

var obj = {
  person1: {
    name: 'iggy',
    superPower: 'awesomeness',
    favDonut: 'chocolate'
  },
  person2: {
    name: 'iggy2',
    superPower: 'stupendousness',
    favDonut: 'glazed'
  },
  person3: {
    name: 'iggy3',
    superPower: 'amazingness',
    favDonut: 'chocolate sprinkles'
  }
};

迭代看起来像这样:

X chocolate
X glazed
X chocolate sprinkles

如果我单击 glazed 上的 x,我希望将其记录到 console.log person2,因为它是 glazed 的父对象。如果我点击 chocolate spills 上的 x,我希望它到 console.log person3

这是 fiddle :https://jsfiddle.net/iggyfiddle/b9rreoje/2/

我试图找出的方法是 getPersonName 函数。允许用户单击 x 和 console.log 相关对象键的最佳方法是什么?

最佳答案

您需要执行Object.keys,而不是执行Object.values,这样您就可以访问相应的 key 。

  getPersonName: function(person){
    console.log(person);
  }

const donutValues = Object.keys(obj).map((key, index) => <li key={index}><a href="#" onClick={() => this.getPersonName(key)}>X</a> {obj[key].favDonut} </li>);

更新了 fiddle :https://jsfiddle.net/b9rreoje/3/

关于javascript - 如何从javascript中的对象值返回键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42883531/

相关文章:

javascript - 遍历 JavaScript 对象 - 我错过了什么?

java - 具有嵌套 ArrayList 的对象的线程安全 HashMap

javascript - 根据正则表达式模式分割字符串

javascript - Redux:这种全能 Action 创建者模式是不是错了?

reactjs - 在嵌套的 React 组件中使用 Enzyme 查找元素

javascript - 尝试从 Fabric.js 事件处理程序分派(dispatch)操作会导致 "Reducers may not dispatch actions."

object - Kotlin:类中对象和伴随对象之间的区别

javascript - 如何运行 redux-router 的基本示例

javascript - SVG圆脉冲同步不起作用

javascript - Input.value 在我的 console.log 中产生了奇怪的延迟