【发布时间】:2020-04-17 19:19:02
【问题描述】:
我是 javascript 初学者,正在尝试编写代码以提高自己,目前正在尝试学习“模板文字”,并且由于某种原因通过放入“模板文字”来获得不同的答案。这是我的代码:
const foodArray = [
{ name: 'Burrito' },
{ name: 'Pizza' },
{ name: 'Burger' },
{ name: 'Pasta' }
];
for (let i = 0; i < foodArray.length; i++) {
console.log(`i value: ${i} | Food Name:`, foodArray[i]);
}
<p id="demo"></p>
所以现在我将 'foodArray[i]' 放在 'template literals' 中,就像这样 ' ${foodArray[i] ' 但它给了我 '[object Object]',它不应该给出相同的结果吗?也许我在这里做错了什么
const foodArray = [
{ name: 'Burrito' },
{ name: 'Pizza' },
{ name: 'Burger' },
{ name: 'Pasta' }
];
for (let i = 0; i < foodArray.length; i++) {
console.log(`i value: ${i} | Food Name: ${foodArray[i]}`);
}
<p id="demo"></p>
【问题讨论】:
-
这只是模板文字字符串化对象的方式与 console.log 的实现方式之间的区别。模板文字在其上调用
toString()。 console.log 正在使用 JSON.sringify 什么的。 -
@bryan60 你能写出解决这个问题的答案吗?
-
只做
${JSON.stringify(foodArray[i])}
标签: javascript html arrays for-loop template-literals