我现在正在学习Java脚本,所以这个问题是为了满足我的好奇心.

有3个一维数组,如下所示:

let 水果 = ["apple","Mango","Banana","Pineaple","Pear"];
let vegetables = ["Okra", "Spinach", "Kenef", "Bitter Leaf", "Bell [Peppers"];
let proteins = ["Fish", "Caviar", "Chicken", "Eggs", "Beans"];

所有这三个数组都用于创建多维数组,如下所示:

let shoppingList = [水果, vegetables, proteins];

我想以这样一种方式遍历"shop pingList",即在显示商品之前显示1D数组的名称,如下所示:

水果

苹果 芒果 香蕉 松树 梨


蔬菜

秋葵 菠菜 克内夫 松树 梨

...诸若此类

我目前无法执行此操作,因为只能显示一维数组中的项.

我已经按如下方式遍历了它们,没有任何问题:

for(let listCategory of shoppingList){
    for(let listItem of listCategory){
        console.log(listItem);
    }
} 

这给了我以下几点: 苹果 芒果 香蕉 松树 梨 秋葵 菠菜 克内夫 苦叶 贝尔[胡椒] 鱼 鱼子酱 鸡肉 蛋 豆子

But what i want is this: 水果 (variable name) apple Mango Banana Pineaple Pear

蔬菜(变量名) 秋葵 菠菜 克内夫 苦叶 贝尔(胡椒)

蛋白质(变量名称) 鱼 鱼子酱 鸡肉 蛋 豆子

在输入了所有这些之后,我只是想知道这是否可能?

假设:

  1. 数组的长度是未知的

推荐答案

直接将变量名转换为字符串是相当迂回的.您可以做的是使用包含数组的对象,而不是一个多维数组,并利用对象属性速记(请参见shorter notation):

const fruits = ["apple","Mango","Banana","Pineaple","Pear"];
const vegetables = ["Okra", "Spinach", "Kenef", "Bitter Leaf", "Bell [Peppers"];
const proteins = ["Fish", "Caviar", "Chicken", "Eggs", "Beans"];

const shoppingList = {fruits, vegetables, proteins};

for(const category in shoppingList) {
  console.log(`[${category}]`);
  for(const item of shoppingList[category])
    console.log(" -", item)
  console.log("")
}

Node.js相关问答推荐

如何修复PayPal Node.js Webhook中Webhook签名验证失败?''

在Node JS中获取控制台选项卡标题

如何在不丢失其他键的情况下解开子文档数组,然后反转该过程?

Mongoose抱怨说,整数是数字,而不是整数

如何在Sequelize with Postgres中将m:n关联表ID从整数迁移到UUID?

在 NodeJS 中使用 post 时出现错误 500TypeError: 无法解构 'req.body' 的属性 'name',因为它未定义

Prisma 和 Nextjs:重新部署之前内容不会更新

如何获取mongoose中单个id数据的记录

Node fetch 实现似乎与 Deno 和 Bun 不同,导致网站没有返回响应?

为什么我不能将 id 发送到后端并通过 findByIdAndRemove() 删除项目?

firebase/messaging 不提供名为 getToken 的导出

如何在没有 Typescript 的情况下以交互方式使用 Create-React-App?

在快速路由中使用 axios 会在数据字段中返回特殊字符而不是 json

FirebaseCloudMessaging : PlatformException (PlatformException(null-error, Host platform returned null value for non-null return value., null, null))

`npm install` 以Killed结尾

npm install - javascript堆内存不足

未在 Windows 8.1 上构建的 node 包 - 缺少 Microsoft.Cpp.Default.props

在 Node.js 中获取终端的宽度

webpack-dev-server 找不到模块webpack

promise 回调返回promise