如何将处理后的单个对象合并为多对象数组
如何将处理后的对象恢复为数组格式?
我有一个数组的对象:
csvContent = [{ "a": 123, "b": "ccc" }, { "a": "bbb", "b": "aaa" }];
我用下面的代码把每个对象的"a"键值转为字符串:
for (let i in csvContent){ dataString.a = String(csvContent[i].a); console.log(dataString.a); }
但循环输出的结果是:
第一次循环结果:
{ "a": "123", "b": "ccc" }
第二次循环结果:
{ "a": "bbb", "b": "aaa" }
请问怎么把这些分离的对象恢复成最初的数组格式:
[{},{}]
直接修改原数组或者创建新数组存储处理后的对象就行,给你几种简单的实现方式:
方式1:直接修改原数组
遍历数组时直接修改每个元素的a属性,处理完原数组就是你要的格式:
// 用forEach遍历(比for in更适合数组) csvContent.forEach(item => { item.a = String(item.a); }); console.log(csvContent);
或者用你原来的for in循环改一下:
for (let i in csvContent){ csvContent[i].a = String(csvContent[i].a); } console.log(csvContent);
方式2:创建新数组(不修改原数据)
如果不想改动原始数组,就复制每个对象并处理后存入新数组:
// 用map方法最简洁 const processedArray = csvContent.map(item => ({ ...item, // 复制原对象的所有属性 a: String(item.a) // 覆盖a属性为字符串格式 })); console.log(processedArray);
或者用for循环手动构建:
const processedArray = []; for (let i in csvContent) { const newItem = {...csvContent[i]}; newItem.a = String(newItem.a); processedArray.push(newItem); } console.log(processedArray);
你原来的代码问题在于每次循环只处理了单个对象,但没把它加入数组,只要在处理后把对象push到数组里,就能得到你要的[{},{}]格式。
内容的提问来源于stack exchange,提问作者Guinglain
相关产品推荐
相关产品推荐

