今天有个某平台有位面试官问我做没做过小程序,作为一个从黑马培训完Python出来后,第一份正式工作却不是后端的我,当然是没做过了。。面试官想让我尝试去学习一下,而我个人也想着去多学点东西,当然,如果单纯写接口的话,那就太简单了。。给一个大佬朋友做了下简单的交流,他正好有udacity 的课程,先去学学看一个小程序基础(天气应用),学习前,会有一些简单的练习,测试一下前端基础,HTML,CSS都过啦,JavaScript 这边有点小问题,这里记录一下,问题:
下面是个 donut 甜甜圈对象数组
var donuts = [ { type: "Jelly", cost: 1.22 }, { type: "Chocolate", cost: 2.45 }, { type: "Cider", cost: 1.59 }, { type: "Boston Cream", cost: 5.99 } ];
说明:
使用 forEach()
方法循环访问该数组,并使用 console.log
输出以下甜甜圈摘要
Jelly donuts cost $1.22 each
Chocolate donuts cost $2.45 each
Cider donuts cost $1.59 each
Boston Cream donuts cost $5.99 each
然后让补充完下面的代码
/*
* Programming Quiz: Donuts Revisited (7-6)
*/
var donuts = [
{ type: "Jelly", cost: 1.22 },
{ type: "Chocolate", cost: 2.45 },
{ type: "Cider", cost: 1.59 },
{ type: "Boston Cream", cost: 5.99 }
];
// your code goes here
这里检讨一下自己的错误,就是没有看清题就去动手,浪费了很多时间和精力,希望尽快改掉这个坏毛病吧
我直接去定义了这个forEach 函数
var forEach = function(){
for (var donut in donuts){
console.log(donut.type + "donuts cost $" + donut.cost + "each")
}
}
forEach()
当然不要少了调用,结果不对
undefined donuts cost $undefined each
undefined donuts cost $undefined each
undefined donuts cost $undefined each
undefined donuts cost $undefined each
郁闷,这个donuts 不是全局变量吗?改成传参的吧
var forEach = function(donutss){
for (var donut in donutss){
console.log(donut.type + "donuts cost $" + donut.cost + "each")
}
}
forEach(donuts)
结果是一样的,问了一下大佬,大佬说,题目是让你使用forEach() ,不是让你定义,于是乎,查了一下,这个函数。。还真有,看着名字,真是。。。不像是已经被定义好的。。
查询资料:https://www.runoob.com/jsref/jsref-foreach.html,这里推荐一下菜鸟教程,真的是很不错的网站,感谢一下。
大致看了一下,然后花几分钟把代码一改
var myfunction = function(item){
console.log(item.type + ' donuts cost $' + item.cost + ' each')
}
donuts.forEach(myfunction)
运行没问题,收拾收拾,出去面试了(另外一家)
晚上回来后,记录一下,然后开始学习咯~