javascript - 在对象数组中获取单个键和单个值的更简单方法?
问题描述
有没有更自然的方式在 JavaScript 中获取对象的键和值?
我正在尝试在我的 React App 中填充对象数组。
数据看起来像:
Methods:[{"foo": "walk"}, {"bar":"run"}],
getMethodList(){
return this.state.Methods.map((item, index) => (
<div key={index}>
<input type="radio"
name="Method"
value={item.key} <---Get the key of object
onChange={this.handleMethodSelect}
/>
{item.value} <---Get the value of the object
</div>
))
}
Object.keys()
并Objects.value()
返回键和值的列表。这不是我想要的。
是否有一种简单的方法可以以与其他编程语言(Python、Java)类似的方式获取对象的键和值?如果不是,解决我的问题的最佳“Javascript”方法是什么?
解决方案
正如@ashish-singh 建议的那样,您应该使用Object.entries
Methods:[{"foo": "walk"}, {"bar":"run"}],
getMethodList(){
return this.state.Methods.map((item, index) => (
<div key={index}>
<input type="radio"
name="Method"
value={Object.entries(item)[0][0]}
onChange={this.handleMethodSelect}
/>
{Object.entries(item)[0][1]}
</div>
))
}
让我说这是使用对象的一种不寻常的方式,不知道键并将键用作值。可能你应该使用这样的东西:
Methods:[{ key: "foo", value: "walk"}, { key: "bar", value:"run"}],
getMethodList(){
return this.state.Methods.map((item, index) => (
<div key={index}>
<input type="radio"
name="Method"
value={item.key}
onChange={this.handleMethodSelect}
/>
{item.value}
</div>
))
}
推荐阅读
- javascript - 输入长度大于 0 不能正常工作
- javascript - Typescript 中的函数向量
- django - 在 Django 模型中,需要对两个字段进行验证,一个下拉字段选项使另一个字段成为必填项
- django - Django NoReverseMatch 异常
- python - 如何从来自 Flipkart 网站的 div 标签中的图片标签中获取图片 url?
- python - 在某个索引后向数据框列添加值
- java - 加载 .jar 中打包的资源
- google-bigquery - 为什么在使用 BigQuery 运行 SQL 时出现以下错误
- javascript - 如何为组合字符设置carret(设置组合)?
- excel-formula - 如何使用文本前缀对单元格中的值求和