如何在JavaScript中将对象数组转换为字符串?

如何在JavaScript中将对象数组转换为字符串?,javascript,Javascript,阵列如下所示: [{name:'name1',id:'id1',val:'001}, ... {name:'name10',id:'id10',val:'010}] 我们希望以长文本字符串的形式存储在数据库中: name1,id1,001;...;name10,id10,010 用分号和逗号分隔的值 是否有任何方便的加入或其他方法来实现它?(我想对于循环肯定有比更好的方法。)函数连接值(arr,j1,j2){ 返回arr.map(函数(o){ 返回对象.keys(o).map(函数(k)

阵列如下所示:

[{name:'name1',id:'id1',val:'001},
 ...
 {name:'name10',id:'id10',val:'010}]
我们希望以长文本字符串的形式存储在数据库中:

name1,id1,001;...;name10,id10,010
用分号和逗号分隔的值

是否有任何方便的
加入
或其他方法来实现它?(我想对于循环肯定有比
更好的方法。)

函数连接值(arr,j1,j2){
返回arr.map(函数(o){
返回对象.keys(o).map(函数(k){
返回o[k];
}).连接(j1)
}).加入(j2);
}
var obj=[{a:1,b:2},{a:'x',b:'y'}];
连接值(对象,,,;);//=>“1,2;x,y”
功能连接值(arr、j1、j2){
返回arr.map(函数(o){
返回对象.keys(o).map(函数(k){
返回o[k];
}).连接(j1)
}).加入(j2);
}
var obj=[{a:1,b:2},{a:'x',b:'y'}];
连接值(对象,,,;);//=>“1,2;x,y”

恐怕没有内置的语言功能,但是如果您可以使用ES6,它看起来会非常优雅

Object.values = obj => Object.keys(obj).map(key => obj[key]);

// so to convert your data
data.map(o => Object.values(o).join(',')).join(';');

恐怕没有内置的语言功能,但是如果你能使用ES6,它看起来会很优雅

Object.values = obj => Object.keys(obj).map(key => obj[key]);

// so to convert your data
data.map(o => Object.values(o).join(',')).join(';');
请注意,根据您的平台,可能会出现兼容问题(
map
reduce
Object.key
还不适用于任何地方!)

此外,还要考虑到常规对象中的属性顺序是。使用这种方法,理论上您可能会得到
name1,id1001;。。。;id10,名称10010
。当将字符串映射回对象时,这可能是一个问题

请注意,根据您的平台,可能会出现兼容问题(
map
reduce
Object.key
还不适用于任何地方!)


此外,还要考虑到常规对象中的属性顺序是。使用这种方法,理论上您可能会得到
name1,id1001;。。。;id10,名称10010
。当将字符串映射回对象时,这可能是一个问题。

如果您对Jquery感到满意,那么这个问题很简单:因为问题没有用Jquery标记,所以我无法将其添加为答案:(因为这不是一个数组,而是一个对象,所以你不能使用
连接
,除非你是明确的,否则不会得到确定的顺序。如果你对Jquery满意,那么这个问题很简单:因为这个问题没有用Jquery标记,所以我不能将它添加为答案:(因为那不是一个数组,而是一个对象,所以你不能使用
join
,除非你是显式的,否则不会得到确定的顺序。太棒了!那当然是漂亮的JavaScript。非常感谢。太棒了!那当然是漂亮的JavaScript。非常感谢。