如何在终端分多行输出数组元素?(用于实现下拉菜单)
终端分多行打印数组实现下拉菜单效果
基础分多行打印(无交互)
如果只是需要将数组条目分多行输出为列表形式,直接遍历数组逐个打印即可,以下是不同语言的实现:
Node.js
const options = ['Java', 'Python', 'JavaScript', 'C++', 'Go']; options.forEach((opt, index) => { console.log(`${index + 1}. ${opt}`); });
执行后终端输出:
1. Java 2. Python 3. JavaScript 4. C++ 5. Go
Python
options = ['Java', 'Python', 'JavaScript', 'C++', 'Go'] for idx, opt in enumerate(options, start=1): print(f"{idx}. {opt}")
执行后终端输出和上面一致。
交互式下拉菜单(支持选择)
如果需要实现可选择的下拉菜单功能,结合终端交互能力实现:
Node.js(内置readline模块)
const readline = require('readline'); const options = ['Java', 'Python', 'JavaScript', 'C++', 'Go']; const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); console.log('请选择一个选项:'); options.forEach((opt, index) => { console.log(`${index + 1}. ${opt}`); }); rl.question('输入选项序号:', (answer) => { const selectedIndex = parseInt(answer) - 1; if (selectedIndex >= 0 && selectedIndex < options.length) { console.log(`你选择了:${options[selectedIndex]}`); } else { console.log('无效的选项序号'); } rl.close(); });
运行后终端会先打印选项列表,等待用户输入序号,输入后返回选择结果。
Python(内置input)
options = ['Java', 'Python', 'JavaScript', 'C++', 'Go'] print('请选择一个选项:') for idx, opt in enumerate(options, start=1): print(f"{idx}. {opt}") try: selected_idx = int(input('输入选项序号:')) - 1 if 0 <= selected_idx < len(options): print(f"你选择了:{options[selected_idx]}") else: print('无效的选项序号') except ValueError: print('请输入有效的数字序号')
运行逻辑和Node.js版本一致,支持输入验证。
内容的提问来源于stack exchange,提问作者Aeolus Developer
相关产品推荐
相关产品推荐

