javascript - 无法从多维数组访问项目
问题描述
我正在尝试从下面的多维数组中获取 DishId,但我无法实现它。下面是代码细节。
count = 0;
for (j = 0; j < OrderDishes.length; j++) {
for (k = 0; k < OrderDishes[j].length; k++) {
dishId.push(OrderDishes[k].DishId);
count = count + 1;
if(count == OrderDishes[j].length){
console.log(dishId);
return res.json({
success: 1
});
}
}
}
OrderDishes 低于 Array :
[ [ { DishId: 43,
DishName: 'Kuchvi Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95' } ],
[ { DishId: 41,
DishName: 'Dum Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95' },
{ DishId: 42,
DishName: 'Tysoon Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95' } ] ]
当我跑步时,我得到 43 和 41 ,而不是我在寻找 43、41 和 42
解决方案
由于计数条件,您只得到 43 和 41。你的外部数组的长度是 2。dishId 43 是一个数组,dish 41 和 42 在第二个数组中。一旦计数达到 2,它就会停止。
尝试将您的 count++ 和 if 条件移出内部循环。
const OrderDishes = [
[{
DishId: 43,
DishName: 'Kuchvi Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95'
}],
[{
DishId: 41,
DishName: 'Dum Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95'
},
{
DishId: 42,
DishName: 'Tysoon Biryani',
Spicy: 2,
UnitPrice: '6.99',
Qty: 5,
DishTotal: '34.95'
}
]
]
count = 0;
let dishId = []
for (j = 0; j < OrderDishes.length; j++) {
for (k = 0; k < OrderDishes[j].length; k++) {
dishId.push(OrderDishes[j][k].DishId);
}
count++;
if (count === OrderDishes.length) {
console.log('dishID: ', dishId);
}
}
推荐阅读
- c++ - 分发原始 msvcp.dll 或安装 vc_redist.exe
- scala - 是什么导致匹配元组列表的模式保护中出现这种类型错误
- go - 为什么 `fmt.Println("%T\n", e)` 其中 `e` 是一个错误变量会打印出来
而不是它的类型? - google-cloud-platform - 通过 API 管理 GCP 配额
- sql-server - 准备好的语句中的所有参数都应该使用占位符吗?
- python - 切片将 UserList 转换为列表
- webgl - 在 WebGL 中,可以使用片段着色器来设置 LUMINANCE 纹理吗?
- c# - SSL 端口 5671 上的 RabbitMQ 无法访问,但可在 telnet 上访问
- .net - 打开或操作 Jpeg2000 压缩的 Tiff
- gradle - Kotlin 1.3.20 与 Gradle 5.1.1 compileKotlin2Js 执行热重载