javascript - 在 if 语句上访问数组
问题描述
我有这样的代码:
function firstArrived(cars) {
// code below here
var yellow = [];
var red = [];
var black = [];
for(var i=0; i <= cars.length; i++){
if(cars[i][1] === 'yellow'){
yellow.push(cars[i][0]);
}
else if(cars[i][1] === 'red'){
red.push(cars[i][0]);
}
else{
black.push(cars[i][0]);
}
}
return yellow;
};
//测试用例
console.log(firstArrived([['1171 CA', 'yellow'],['1234', 'black'],['V 76998', 'red']]));
代码应该有这样的结果:
[ '1171 CA' ]
但相反,我遇到了这样的错误:
未捕获的类型错误:无法读取未定义的属性“1”
你能帮我找出我的代码有什么问题吗?多谢。
解决方案
由于数组索引从 开始0
,因此i <= cars.length
您正在循环超出数组的长度。只需使用<
而不是<=
条件:
for(var i=0; i < cars.length; i++){
function firstArrived(cars) {
// code below here
var yellow = [];
var red = [];
var black = [];
for(var i=0; i < cars.length; i++){
if(cars[i][1] === 'yellow'){
yellow.push(cars[i][0]);
}
else if(cars[i][1] === 'red'){
red.push(cars[i][0]);
}
else{
black.push(cars[i][0]);
}
}
return yellow;
};
//TEST CASE
console.log(firstArrived([['1171 CA', 'yellow'],['1234', 'black'],['V 76998', 'red']]));
推荐阅读
- flutter - Flutter:Inkwell 不适用于 Card
- php - 列出当前类别中的 wordpress 帖子和
- docker - 将多个 docker 镜像组合成一个镜像并让它们进行通信
- gtk3 - GTK 小部件仅用于按色调选择
- mysql - 从联接查询中选择 SUM 字段和其他列
- java - 使用来自 JSON 输入的 JACKSON 向 XML 添加属性
- bash - 如何在while循环中多次解析变量
- vba - 当 Excel 和 Outlook 以不同用户身份运行时,Excel VBA 获取 Outlook 日历
- c# - 通过 Bot Framework 发送的英雄卡中的图像未从源更新
- python-3.x - 谷歌存储python api并行下载