在 Javascript 中,当遍历对象数组时,如何将每个元素的名称发送到控制台?

In Javascript, when looping through an array of objects, how do I send each element's name to the console?

如何在对象数组迭代时将元素的名称(每个对象的名称)输出到控制台?

我在网上搜索过各种帖子和话题,但我找不到这个问题的答案。我可以看到 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array.

的数组的 properties/methods 中也没有任何内容

这是我正在尝试做的一个简化示例:

let card1 = {
  question:'1+1?',
  answer:'2'
}

let card2 = {
  question:'1+2',
  answer:'3'
}

let card3 = {
  question:'1+3',
  answer:'4'
}

let card4 = {
  question:'1+4',
  answer:'5'
}

let card5 = {
  question:'1+5',
  answer:'6'
}

let cards = [card1,card2,card3,card4,card5];

cards.forEach(function(card){
  console.log(card.name);
  console.log(card.question);
  console.log(card.answer);
});

这是我的 fiddle 以上内容: https://jsfiddle.net/JaredHess/arLmnz72/7/

我一直希望有像 card.namecard.id 这样的方法(但这些都不存在)。

例如,当它循环到数组中的第一个元素时,我希望它显示card1,像这样:

card1
"1+1?"
"2"

预先感谢您的帮助。

您可以在数组中定义卡片,而不是将它们定义为单独的变量。

如果您想为每张卡片创建一个自定义 name 属性,那么您当然可以 — 但如果您只想要一个模板名称,例如 "name 1""name 2",等等,那么你就不需要在数组中的每个对象中定义名称。相反,您可以使用每张卡片的索引在 map function 中创建和添加名称,如下所示:

const cards = [
  {question:'1+1?', answer:'2'},
  {question:'1+2', answer:'3'},
  {question:'1+3', answer:'4'},
  {question:'1+4', answer:'5'},
  {question:'1+5', answer:'6'},
].map((card, index) => ({...card, name: `card${index + 1}`}));

cards.forEach(card => console.log(card));

TS Playground