如何遍历数组将前5项作为对象key,剩余内容转为指定格式的对象数组
实现方案
你可以按照分组映射的逻辑实现,代码支持动态调整key的数量,适配数组内容变化的场景:
核心逻辑
- 第一步从原数组头部截取指定数量的元素作为键名集合
- 剩余元素按照键名的数量划分为N组,每组和键名一一映射生成对象
- 所有生成的对象汇总为最终的对象数组
可运行代码示例
const rawArr = ["name", "time", "date", "address", "Balance", "George", "Nancy", "Shivam", "George", "10:00AM", "12:00PM", "4:00PM", "", "10/10/2021", "05/20/2021", "06/05/2019", "07/10/2021" ,"308 E Parker St", "505 10th Ave", "2706 Pershing Blvd" , "988 Cannon Farm Rd", "546.00", "648.00", "899.99", ""] // 可根据需求修改键的数量,这里前5个为键 const KEY_NUM = 5 const keyList = rawArr.slice(0, KEY_NUM) const valueList = rawArr.slice(KEY_NUM) const res = [] for (let i = 0; i < valueList.length; i += KEY_NUM) { const item = {} for (let k = 0; k < KEY_NUM; k++) { item[keyList[k]] = valueList[i + k] ?? '' // 空值兜底,避免出现undefined } res.push(item) } console.log(res)
如果后续你的数组键的数量从5调整为其他数字,只要修改KEY_NUM的值即可,不需要调整其他逻辑。
内容的提问来源于stack exchange,提问作者Alif Hossain
相关产品推荐
相关产品推荐

