将数组的数组转换为javascript中的对象
Posted
技术标签:
【中文标题】将数组的数组转换为javascript中的对象【英文标题】:Convert array of an array to object in javascript 【发布时间】:2021-11-06 10:50:03 【问题描述】:我有一个类似的数组
var arrays = [
"name": "aaa", "value": "bbb" ,
"name": "ccc", "value": "ccc" ,
"name": "ddd", "value": [ 'ee', 'ff', 'gg' ]
]
但我需要把它转换成
var arrays = [
"name": "aaa", "value": "bbb" ,
"name": "ccc", "value": "ccc" ,
"name": "ddd", "value": "ee, ff, gg"
]
【问题讨论】:
你已经尝试了什么? 你应该检查这个 - codezup.com/… 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。 【参考方案1】:const modifiedArray = array.map(obj =>
return ...obj, value: obj.value.toString()
)
var array = [
"name": "aaa", "value": "bbb" ,
"name": "ccc", "value": "ccc" ,
"name": "ddd", "value": [ 'ee', 'ff', 'gg' ]
]
const modifiedArray = array.map(obj =>
return ...obj, value : obj.value.toString()
)
console.log(modifiedArray)
【讨论】:
实际上整个命名约定也搞砸了。我们在这里处理一个数组,而不是多个数组。但我确实喜欢函数式方法。这很好。 很好地使用了rest
运算符@kritiz!我第一次看到它用在物体上。
@PeterKA,我第一次对 *** 表示赞赏?,谢谢【参考方案2】:
有很多方法可以做到这一点。这是其中之一:
const array = [
"name": "aaa", "value": "bbb" ,
"name": "ccc", "value": "ccc" ,
"name": "ddd", "value": [ 'ee', 'ff', 'gg' ]
];
array.forEach(el=>Array.isArray(el.value) && (el.value=el.value.join(" ,")))
console.log(array)
【讨论】:
【参考方案3】:虽然这只会检查 1 层深度,但我也不确定你要做什么。
const arrays = [
name: "aaa", value: "bbb" ,
name: "ccc", value: "ccc" ,
name: "ddd", value: ["ee", "ff", "gg"]
];
const converted = arrays.map(value =>
let convert = ...value ;
for (const key in convert)
if (Array.isArray(convert[key]))
convert[key] = convert[key].join(", ");
;
;
return convert;
);
console.log(converted);
【讨论】:
【参考方案4】:对@kritiz 的回答稍作调整...
array.map( obj => (...obj, value : [].concat(obj.value).join(', ')) );
演示
let array = [
"name": "aaa", "value": "bbb" ,
"name": "ccc", "value": "ccc" ,
"name": "ddd", "value": [ 'ee', 'ff', 'gg' ]
]
let newArray = array.map( obj => (...obj, value : [].concat(obj.value).join(', ')) );
console.log( newArray )
【讨论】:
以上是关于将数组的数组转换为javascript中的对象的主要内容,如果未能解决你的问题,请参考以下文章
Javascript(NodeJs) - 将数组和对象转换为 mysql 中的批量插入(Sequelize)