我有此练习,需要帮助我了解我要去哪里。到目前为止,这是我的代码。
// Exercise Two: In this exercise you will be given an array called 'cents'
// This array is a list of prices, but everything is in cents instead of dollars.
// Using the map method, divide every value by 100 and save it as a new array 'dollars'
function exerciseTwo(cents){
function mapMethod(array, cb) { // created the map method
let dollars = []; // declaring the new array 'dollars'
for (i=0; i < array.length; i++) { //iterating through the loop
let updatedValue = cb(array[i] / 100); // dividing the iteration by 100
dollars.push(updatedValue); //pushing the updated value to the new array 'dollars'
}
return dollars;
}
// Please write your answer in the lines above.
return dollars; // getting error that 'dollars' is not defined :(
}
答案 0 :(得分:0)
-您遇到此错误,因为您试图返回美元,并且主函数中不存在美元,这是无效的:
let updatedValue = cb(array[i] / 100);
执行此操作:
let updatedValue = cb(cents[i] / 100);
但是您看不到美分,因为您没有在函数中声明它
答案 1 :(得分:0)
我认为您应该区分声明和调用函数。
function square(x) {
return x*x;
} // <-- This is declare
square(3) // <-- This is call
您在上面的代码中所做的只是在mapMethod
函数内声明了一个exerciseTwo
函数,该函数将在系统运行测试时被调用。但是您的mapMethod
函数不会被调用,仅被定义即可。
内部函数可以使用外部函数的变量,反之亦然。然后,您将无法从外部函数dollars
mapMethod()
中声明的exerciseTwo()
遵循要求。您应该使用map方法简化代码。
function exerciseTwo(cents){
const dollars = cents.map(cent => cent/100)
return dollars
}
答案 2 :(得分:0)
这是作者编写的首选代码。显然还有更多的“给猫皮的方法”。
const dollars = cents.map(function(price){
return price/100;