这是我最初的解决方案,但我发现Object.keys
不能与数组索引一起工作。
let myArrayForObjects = [];
function firstFunc(){
myArrayForObjects.push(object1, object2, object3);
}
function secondFunc(){
for (let i = 0; i < myArrayForObjects.length; i++){
let varName = Object.keys({myArrayForObjects[i]}[0]);
console.log(varName);
}
}
我把它贴在这里,并建议以下解决方案:
let myArrayForObjects = [];
function firstFunc(){
myArrayForObjects.push(object1, object2, object3);
}
function secondFunc(){
for (let i = 0; i < myArrayForObjects.length; i++){
// Find the object in the array
let objectIndex = myArrayForObjects.indexOf(myArrayForObjects[i]);
// Get the object's name
let objectName = Object.keys(myArrayForObjects)[objectIndex];
console.log(objectName);
}
}
但是它将1
,2
和3
记录到控制台。我想让它记录的是object1
,oject2
和object3
。
有可能做我想做的事吗?或者我应该给对象添加一个带有其名称的属性?
不将对象存储在数组中,而是将它们放在对象中,如下所示:
const myObjects = { object1, object2, object3 }
您现在可以通过名称访问它们:
console.log(myObjects.object1)
或者在需要时迭代对象:
console.log(Object.values(myObjects))