Node.js中如何动态获取对象键名并生成带指定前缀的数组
实现方法
你可以用Object.keys()获取对象所有键名,配合flatMap直接生成符合要求的一维数组,实现代码如下:
const test = async () => { const myList = { PRICE: '12', TYPE: 'Electronics' } const PREFIX = 'MyOrg::' // 核心实现逻辑 const myArray = Object.keys(myList).flatMap(key => [key, `${PREFIX}${key}`]) console.log(myArray) // 输出结果:["PRICE", "MyOrg::PRICE", "TYPE", "MyOrg::TYPE"] }; test();
代码说明
Object.keys(myList):会返回传入对象所有自身可枚举属性的键名组成的数组,针对示例对象返回的结果是["PRICE", "TYPE"]flatMap:会遍历每个键名,对每个键返回包含原键名和拼接前缀后键名的数组,再自动把所有子数组合并成一个一维数组,刚好符合你需要的顺序结构
如果你的运行环境不支持flatMap,也可以用普通遍历的方式实现:
const test = async () => { const myList = { PRICE: '12', TYPE: 'Electronics' } const PREFIX = 'MyOrg::' const myArray = [] for (const key of Object.keys(myList)) { myArray.push(key) myArray.push(`${PREFIX}${key}`) } console.log(myArray) }; test();
如果使用你测试代码里的{ TYPE: '12', REGION: 'Electronics' }作为输入,最终生成的数组为["TYPE", "MyOrg::TYPE", "REGION", "MyOrg::REGION"],完全符合规则。
内容的提问来源于stack exchange,提问作者Mike Marsh
相关产品推荐
相关产品推荐

