如何将VR1数组转换为指定格式(数值转字符串)的目标数组?
解决方法
要实现将VR1中的item_price和quantity转为字符串类型,同时让对象属性带双引号,你需要先转换数据类型再生成目标数组,而非直接将JSON.stringify的结果赋值给变量(因为JSON.stringify返回的是字符串,而非数组对象)。
方法一:数组映射直接转换
遍历原数组,对指定字段做类型转换,同时显式定义带双引号的属性:
const VR1 = [{ content_ids: "323654284", item_price: 131.1, quantity: 1, }]; // 转换数据并生成目标数组 const res = VR1.map(item => ({ "content_ids": item.content_ids, "item_price": String(item.item_price), "quantity": String(item.quantity) }));
此时res就是你期望的数组对象,在代码中使用或控制台打印时,会呈现出属性带双引号、目标字段为字符串的格式。
方法二:结合JSON.stringify与JSON.parse(批量处理场景适用)
如果需要批量处理指定数字字段转字符串,可以用JSON.stringify的replacer函数做类型转换,再通过JSON.parse把字符串转回对象:
const VR1 = [{ content_ids: "323654284", item_price: 131.1, quantity: 1, }]; // 用replacer函数转换目标字段类型,再解析回对象 const res = JSON.parse(JSON.stringify(VR1, (key, value) => { if (key === "item_price" || key === "quantity") { return String(value); } return value; }));
为什么之前的方法不符合预期?
JSON.stringify(VR1)返回的是JSON格式的字符串,赋值给res后,res的类型是字符串而非数组对象,字符串中的双引号会被转义以符合JS字符串语法规则。而你需要的是实际的数组对象,因此必须先转换数据类型再生成对象,不能直接使用字符串结果。
内容的提问来源于stack exchange,提问作者RAJIVE
相关产品推荐
相关产品推荐

