js中object数组怎么转换
原创JS中Object数组转换全解析
在JavaScript开发过程中,我们频繁会遇到需要操作Object数组的情况。有时候,我们需要将Object数组转换成其他格式,以适应不同的业务需求。本文将详细介绍怎样在JavaScript中转换Object数组。
1. Object数组转JSON字符串
在某些场景下,我们需要将Object数组转换成JSON字符串,以便于存储或传输。可以使用JSON.stringify()方法实现这一转换。
const objArray = [
{ name: '张三', age: 18 },
{ name: '李四', age: 20 }
];
const jsonString = JSON.stringify(objArray);
console.log(jsonString); // 输出:'[{"name":"张三","age":18},{"name":"李四","age":20}]'
2. JSON字符串转Object数组
与上一小节相反,有时候我们需要将JSON字符串转换成Object数组。这时,可以使用JSON.parse()方法。
const jsonString = '[{"name":"张三","age":18},{"name":"李四","age":20}]';
const objArray = JSON.parse(jsonString);
console.log(objArray); // 输出:[ { name: '张三', age: 18 }, { name: '李四', age: 20 } ]
3. Object数组转CSV字符串
在导出数据时,我们或许会需要将Object数组转换成CSV(逗号分隔值)格式。以下是实现这一转换的示例代码:
const objArray = [
{ name: '张三', age: 18 },
{ name: '李四', age: 20 }
];
function objArrayToCSV(objArray) {
const array = typeof objArray !== 'object' ? JSON.parse(objArray) : objArray;
let str = '';
for (let i = 0; i < array.length; i++) {
let line = '';
for (const index in array[i]) {
if (line !== '') line += ','
line += array[i][index];
}
str += line + '\r';
}
return str;
}
const csvString = objArrayToCSV(objArray);
console.log(csvString); // 输出:'张三,18\r李四,20\r'
4. 使用map()方法转换Object数组
map()方法允许我们遍历数组,并对数组的每个元素执行一个函数,然后返回一个新数组。以下示例展示了怎样使用map()方法将Object数组中的每个元素转换成新格式:
const objArray = [
{ name: '张三', age: 18 },
{ name: '李四', age: 20 }
];
const newArray = objArray.map(item => {
return {
username: item.name,
userAge: item.age
};
});
console.log(newArray); // 输出:[ { username: '张三', userAge: 18 }, { username: '李四', userAge: 20 } ]
总结
本文介绍了在JavaScript中处理Object数组转换的几种常见方法,包括Object数组与JSON字符串的彼此转换、Object数组转CSV字符串以及使用map()方法转换Object数组。这些方法可以帮助我们更好地应对不同的业务场景,减成本时间代码的灵活性和可扩展性。