【发布时间】:2020-06-04 22:02:42
【问题描述】:
我是 JavaScript 新手,我正在为一个挑战编写一个函数,该函数接收一个表示停车位的数组数组,以及一个带有正在寻找停车位的车辆类型的字符串。对于每种类型的汽车,大写字母表示特定位置可用。 该函数必须返回一个数组,其中点的坐标为 [X, Y] 对。
这是我目前编写的代码:
const whereCanIPark = (spots, vehicle) => {
let tmp = [];
for(let k=0; k<spots.length; k++){
for(let j=0; j<spots[k].length ; j++){
switch(vehicle){
case 'regular': if(spots[k][j]==='R') tmp.push([k,j]); continue;
case 'small': if(spots[k][j]==='S') tmp.push([k,j]); continue;
case 'motorcycles': if(spots[k][j]=== 'M') tmp.push([k,j]); continue;
}
}
}
return tmp;
}
当我打印我的数组时,它是空的。任何人都可以帮助我吗?
编辑:这是测试用例:
const spots = [
// COLUMNS ARE X
// 0 1 2 3 4 5
['s', 's', 's', 'S', 'R', 'M'], // 0 ROWS ARE Y
['s', 'M', 's', 'S', 'R', 'M'], // 1
['s', 'M', 's', 'S', 'R', 'm'], // 2
['S', 'r', 's', 'm', 'R', 'M'], // 3
['S', 'r', 's', 'm', 'R', 'M'], // 4
['S', 'r', 'S', 'M', 'M', 'S'], // 5
]
const vehicle = 'regular' // possible options are 'regular', 'small', or 'motorcycle'
输出应为 [4,0]
我的 tmp 数组当前打印:[]
【问题讨论】:
-
既然要修改tmp的原始值,不应该是
let而不是const吗? -
您介意打印
spots和vehicle数组吗?谢谢。 -
@MarceloF。他没有修改
tmp的引用,所以使用const很好,他应该使用什么。他正在修改tmp的内容。 -
@MarceloF。当您添加到数组或对象时,您没有重新分配或重新声明常量,它已经被声明和分配,您只是添加到常量指向的“列表”中,所以它应该可以工作很好。
-
@Jamie 我打印了景点和车辆
标签: javascript arrays logic