Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从对象javascript获取密钥_Javascript_Ecmascript 6 - Fatal编程技术网

从对象javascript获取密钥

从对象javascript获取密钥,javascript,ecmascript-6,Javascript,Ecmascript 6,以下是我所拥有的: fields = [ { apple: 'red' }, { banana: 'yellow' } ] fields.forEach(field => { // trying to get the key here if (Object.keys(field)[0] === 'apple') console.log('works!') }) 我想问有没有一个简单的方法让我拿到钥匙?我觉得我把它弄得太复杂了 Object.key(fie

以下是我所拥有的:

fields = [ { apple: 'red' }, { banana: 'yellow' } ]

fields.forEach(field => {
    // trying to get the key here
    if (Object.keys(field)[0] === 'apple')
        console.log('works!')
})
我想问有没有一个简单的方法让我拿到钥匙?我觉得我把它弄得太复杂了

Object.key(field)[0]

添加:我只是尝试从这个对象数组中获取每个键,并与字符串进行比较

您应该使用
includes
检查
apple
是否在数组
对象中。键(字段)

let fields=[{apple:'red'},{banana:'yellow'}];
fields.forEach(字段=>{
//想在这里拿到钥匙
if(Object.keys(field.includes('apple'))
console.log('works!')
});您只需使用

let fields=[{apple:'red'},{banana:'yellow'}]
fields.forEach(e=>{
让[key]=Object.keys(e)
如果(键=='apple')
console.log('works!')

})
一个对象可以有任意数量的属性,因此“键”在一般情况下没有任何意义。您可以添加更多关于如何使用键的上下文吗?例如,如果您正在检查键和值,可能应该使用
Object.entries
具有不同键的对象数组是一种代码气味。如果它是类似于“[{fruit:'apple',color:'red'},{fruit:'banana',color:'yellow'}”的东西会更好。变量数据应该是值,而不是键。@Barmar是的,我改变了我的设计,就像你说的那样,这样更容易获得我需要的信息。非常感谢。