Javascript 如何使用forEach函数查找父项的键?

Javascript 如何使用forEach函数查找父项的键?,javascript,object,Javascript,Object,我的内存中有一个对象如下所示: let data = { 12353: { CurrentNumbers: { jiewfh7ahdk8: 14, eiefhsdoowen: 24, jaweufwvnw83: 54 }, 14324: { CurrentNumbers: { jiewfr7ahdk8: 16, e

我的内存中有一个对象如下所示:

let data = {
    12353: {
        CurrentNumbers: {
            jiewfh7ahdk8: 14,
            eiefhsdoowen: 24,
            jaweufwvnw83: 54
        },
    14324: {
        CurrentNumbers: {
            jiewfr7ahdk8: 16,
            eiefhsdsfsdf: 44,
            asgrega4ffef: 14
        },
    }
我试图在
数据
对象上使用
forEach
对其进行迭代,并获取父键(或者
12353
或者
14324
),如下所示:

data.forEach(values => {
    let parentKey = ??  //I tried Object.keys(values) but it gives me CurrentNumbers
} 

有没有办法将键提升一级?

您不能在对象上使用
forEach
,因为没有
对象.prototype.forEach
。相反,您可以使用来迭代对象的属性。根据MDN文档的链接:

for…in
语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句

因此,使用它,我们可以迭代属性
12353
14324

let数据={
12353: {
当前编号:{
jiewfh7ahdk8:14,
艾弗斯杜温:24,
jaweufvnw83:54
}
},
14324: {
当前编号:{
jiewfr7ahdk8:16,
eiefhsdsfsdf:44,
阿斯格雷加夫:14
}
}
}   
for(让x输入数据){
控制台日志(x);

}
您不能对对象执行
forEach
,因为没有
object.prototype.forEach
。相反,您可以使用来迭代对象的属性。根据MDN文档的链接:

for…in
语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句

因此,使用它,我们可以迭代属性
12353
14324

let数据={
12353: {
当前编号:{
jiewfh7ahdk8:14,
艾弗斯杜温:24,
jaweufvnw83:54
}
},
14324: {
当前编号:{
jiewfr7ahdk8:16,
eiefhsdsfsdf:44,
阿斯格雷加夫:14
}
}
}   
for(让x输入数据){
控制台日志(x);

}
安德鲁已经回答了这个问题,如果你只想找回你可以放进去的东西的钥匙

let数据={
12353: {
当前编号:{
jiewfh7ahdk8:14,
艾弗斯杜温:24,
jaweufvnw83:54
}
},
14324: {
当前编号:{
jiewfr7ahdk8:16,
eiefhsdsfsdf:44,
阿斯格雷加夫:14
}
}
}; 

console.log(Object.keys(数据))Andrew已经回答了问题,如果你只想检索你可以放置的对象的键

let数据={
12353: {
当前编号:{
jiewfh7ahdk8:14,
艾弗斯杜温:24,
jaweufvnw83:54
}
},
14324: {
当前编号:{
jiewfr7ahdk8:16,
eiefhsdsfsdf:44,
阿斯格雷加夫:14
}
}
}; 


console.log(Object.keys(数据))你说的一级升级是什么意思?@Sajeetharan我现在得到的是“currentNumber”键,但我想得到“12353”键。因此CurrentNumbers
data.forEach
的父对象不适用于给定的对象。您的对象可能不正确-如果不正确,您可以使用object.keys:
let data={12353:{CurrentNumbers:{jiewfh7ahdk8:14,eiefhsdoowen:24,jaweufwvnw83:54},14324:{CurrentNumbers:{jiewfr7ahdk8:16,eiefhsdsfsdf:44,asgrega4ffef:14},}console.log(JSON.stringify(Object.keys(data))
你说的一级升级是什么意思?@Sajeetharan现在我得到了密钥“currentNumber”,但我想得到密钥“12353”.CurrentNumbers
data.forEach
的父对象不适用于给定的对象。您的对象可能不正确-如果是,您可以使用object.keys:
let data={12353:{CurrentNumbers:{jiewfh7ahdk8:14,eiefhsdoowen:24,jaweufwvnw83:54},14324:{CurrentNumbers:{jiewfr7ahdk8:16,eiefhsdsfsdf:44,asgrega4ffef:14},}console.log(JSON.stringify(Object.keys(data))
console.log(JSON.stringify(Object.keys(data)))@mplungjan已编辑。如果您想要一个可枚举属性数组,则不需要JSON stringify。我使用了它,因为控制台将以4行或更多行显示它,而不是一行显示键,但看起来我现在无法访问子对象?@mattc19当然可以访问。在for-in循环中,您可以使用括号no无法访问children.console.log(JSON.stringify(Object.keys(data)))@mplungjan已编辑。如果您想要一个可枚举属性数组,则不需要JSON stringify。我使用了它,因为控制台将以4行或更多行显示它,而不是一行显示键,但看起来我现在无法访问子对象?@mattc19当然可以访问。在for-in循环中,您可以使用括号no我很好奇,为什么你使用下划线.js,而问题甚至没有提到使用它?为什么只为这样的操作包含一个库?一个问题可能有很多答案,这只是另一个wayObject.keys(数据)没有underscore@mplungjan这是另一个答案:我很好奇为什么你使用下划线.js,而问题甚至没有提到使用它?为什么只为这样一个操作包含一个库?一个问题可能有很多答案,这只是另一个wayObject。键(数据)没有underscore@mplungjan这是另一个答案:P