在 Javascript 中,您可以在遍历对象时将模板文字用于 console.log 对象中的内容吗?

In Javascript, can you use template literals to console.log content from an object while iterating over it?

所以我学习 JS 不到 1 周,我一直在努力寻找解决方案,但除了涉及函数和与 JSON.stringify 有关的答案(我不明白)我似乎找不到一个。我不想在迭代此对象时使用字符串连接,而是使用模板文字来显示每个 属性 的特定信息。这可能吗?

pokemonList = [
  {name: 'Bulbasur', height: 70, weight: 15.2, type: ['grass','poison']},
  {name: 'Charmander', height: 60, weight: 18.7, type: ['fire']},
  {name: 'Squirtle', height: 50, weight: 19.8, type: ['water']}
];

for (let i=0; i < pokemonList.length; i++) {
  console.log(`${pokemonList.name[i]} ${pokemonList.height[i]}`);
};

你绝对可以!您只需要将 pokemonList.name[i] 更改为 pokemonList[i].name.

pokemonList是里面有元素的那个,所以你用pokemonList[i]访问里面的一个元素,然后pokemonList[i].name会给你名字属性 该元素的。

固定代码如下:

pokemonList = [
  {name: 'Bulbasur', height: 70, weight: 15.2, type: ['grass','poison']},
  {name: 'Charmander', height: 60, weight: 18.7, type: ['fire']},
  {name: 'Squirtle', height: 50, weight: 19.8, type: ['water']}
];

for (let i=0; i < pokemonList.length; i++) {
  console.log(`${pokemonList[i].name} ${pokemonList[i].height}`);
};

另一方面,

JSON.stringify 会将整个对象打印为字符串,它看起来与上面列表中的代码类似:

pokemonList = [
  {name: 'Bulbasur', height: 70, weight: 15.2, type: ['grass','poison']},
  {name: 'Charmander', height: 60, weight: 18.7, type: ['fire']},
  {name: 'Squirtle', height: 50, weight: 19.8, type: ['water']}
];

for (let i=0; i < pokemonList.length; i++) {
  console.log(JSON.stringify(pokemonList[i]));
};

你的for循环出错了 您应该将 [i] 替换为 pokemontList,而不是 pokemonList 的 属性 ${pokemonList[i].name} ${pokemonList[i].height}

您可以对数组中的每个项目使用 JSON.stringifay:

pokemonList.forEach(item => console.log(JSON.stringify(item)));