如何将对象数组转换为字符串列表?Vue场景实现方案
解决对象数组中每个对象单独转为字符串的问题
你可以通过以下两种方式实现将数组中的每个对象分别转换为字符串:
方法1:使用Array.map()结合JSON.stringify()
这是最简便的通用方案,遍历数组并对每个对象单独执行字符串转换:
const arr = [ { id: 1, name: 'Max', grade: 3 }, { id: 2, name: 'Lisa', grade: 2 } ]; const result = arr.map(item => JSON.stringify(item));
执行后得到的结果:
["{\"id\":1,\"name\":\"Max\",\"grade\":3}","{\"id\":2,\"name\":\"Lisa\",\"grade\":2}"]
注意:JSON.stringify()会统一使用双引号包裹属性名和字符串值,和你预期的格式略有差异,如果需要严格匹配单引号的格式,可以用下面的自定义方法。
方法2:自定义转换函数(匹配预期格式)
如果要得到属性名无引号、字符串属性值用单引号的格式,可以写一个简单的转换函数:
const arr = [ { id: 1, name: 'Max', grade: 3 }, { id: 2, name: 'Lisa', grade: 2 } ]; function objToString(obj) { const propStrs = Object.entries(obj).map(([key, value]) => { // 针对字符串类型的值添加单引号,数字类型直接保留 const formattedVal = typeof value === 'string' ? `'${value}'` : value; return `${key}:${formattedVal}`; }); return `{${propStrs.join(',')}}`; } const result = arr.map(objToString);
执行后得到的结果与你的预期完全一致:
["{id:1,name:'Max',grade:3}","{id:2,name:'Lisa',grade:2}"]
内容的提问来源于stack exchange,提问作者Florian Haberfellner
相关产品推荐
相关产品推荐

