如何将无逗号分隔的多个独立对象转换为单一数组?
将独立对象集合转为数组的解决方案
问题说明
我有一组对象存储在变量listOfObjects中,由于是通过Object.entries从另一数组获取的值,对象之间没有逗号分隔。执行console.log(listOfObjects)后输出如下:
{ q: 'LanceStephenson', tbm: 'isch' }
{ q: 'GorguiDieng', tbm: 'isch' }
{ q: 'SolomonHill', tbm: 'isch' }
需要把这些对象整合到一个数组中,期望输出:
[ { q: 'LanceStephenson', tbm: 'isch' }, { q: 'GorguiDieng', tbm: 'isch' }, { q: 'SolomonHill', tbm: 'isch' } ]
解决方法
方法一:从源头构建数组(推荐)
如果是在通过Object.entries处理原数组时生成了这些独立对象,直接在处理过程中将每个对象推入数组即可,避免后续再处理:
// 假设原数据源是originalArray const listOfObjects = []; for (const [_, value] of Object.entries(originalArray)) { // 根据你的业务逻辑生成单个对象 const singleObj = { q: value, tbm: 'isch' }; listOfObjects.push(singleObj); }
方法二:字符串处理转换(针对已存在的独立对象输出)
如果listOfObjects的输出已经是文本形式的独立对象,可以通过字符串拼接转成合法的JSON数组再解析:
// 先将输出转为字符串,处理格式后解析 const objText = `${listOfObjects}`.replace(/\n/g, ',').replace(/\s{2,}/g, ' '); const resultArray = JSON.parse(`[${objText}]`);
内容的提问来源于stack exchange,提问作者evan
相关产品推荐
相关产品推荐

