如何从 javascript 中的对象值中 return 键?
How to return the key from object value in javascript?
我在 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 sprinkles
上单击 x,我希望它成为 console.log person3
.
这里是fiddle:https://jsfiddle.net/iggyfiddle/b9rreoje/2/
我想弄清楚的方法是 getPersonName
函数。允许用户单击 x 和 console.log 相关对象键的最佳方法是什么?
您需要将 onClick
设置为使用相应的人物对象调用 getPersonName
的内联函数。
getPersonName: function(person){
console.log(person);
},
render(){
const donutValues = Object.values(obj).map((person, index) => <li key={index}><a href="#" onClick={function(){this.getPersonName(person)}.bind(this)}>X</a> {person.favDonut} </li>);
return (
<div>
Hello
<ul>
{donutValues}
</ul>
Give me person: {this.state.person}
</div>
);
}
在这里找到更新的 jsfiddle:https://jsfiddle.net/8637u8qL/
与其执行 Object.values
,不如执行 Object.keys
,这样您就可以访问相应的密钥。
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/
我在 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 sprinkles
上单击 x,我希望它成为 console.log person3
.
这里是fiddle:https://jsfiddle.net/iggyfiddle/b9rreoje/2/
我想弄清楚的方法是 getPersonName
函数。允许用户单击 x 和 console.log 相关对象键的最佳方法是什么?
您需要将 onClick
设置为使用相应的人物对象调用 getPersonName
的内联函数。
getPersonName: function(person){
console.log(person);
},
render(){
const donutValues = Object.values(obj).map((person, index) => <li key={index}><a href="#" onClick={function(){this.getPersonName(person)}.bind(this)}>X</a> {person.favDonut} </li>);
return (
<div>
Hello
<ul>
{donutValues}
</ul>
Give me person: {this.state.person}
</div>
);
}
在这里找到更新的 jsfiddle:https://jsfiddle.net/8637u8qL/
与其执行 Object.values
,不如执行 Object.keys
,这样您就可以访问相应的密钥。
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/