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”键。因此CurrentNumbersdata.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”.CurrentNumbersdata.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