如何将对象数组转换为以&分隔键值对的单个对象
对象数组合并实现方案
你要求的输出格式不属于标准JSON/JS对象格式,无法直接作为对象调用,仅适合做展示使用。如果是实际开发需要,建议先合并为标准可调用的单个对象,再按需转成自定义展示格式,实现代码如下:
1. 合并为标准JS对象
const inputArr = [ { "data1":"Yes" }, { "data2":"2" }, { "data3":true } ] // 使用reduce合并所有子对象 const mergedObj = inputArr.reduce((prev, curr) => ({...prev, ...curr}), {}) // 输出结果:{ data1: 'Yes', data2: '2', data3: true }
2. 转成&分隔的自定义展示字符串
如果需要得到你要求的非标准格式输出,基于上面合并后的对象继续处理即可:
const customFormatStr = '{' + Object.entries(mergedObj) .map(([key, value]) => { // 字符串类型值加双引号,其他类型直接输出原值 const formatVal = typeof value === 'string' ? `"${value}"` : value return `${key}:${formatVal}` }) .join(' & ') + '}' // 输出结果:{data1:"Yes" & data2:"2" & data3:true}
内容的提问来源于stack exchange,提问作者Subodh shakya
相关产品推荐
相关产品推荐

