Javascript 如何在js中将对象转换为数组?
我得到了数组的对象属性Javascript 如何在js中将对象转换为数组?,javascript,arrays,object,functional-programming,Javascript,Arrays,Object,Functional Programming,我得到了数组的对象属性 const data = { test:["1","2"], test2:["1","2"] } 我正在尝试转换此格式。我正在使用Object.values(数据),其中我只能使用数组。我需要这个格式 我的代码: 让输出=对象值(数据) 您需要使用Object.entries访问键(“test”、“test2”等)和值(数组),然后将值映射到具有label和value属性(基于值)的对象数组 像这样的 const数据={ 测试:[“1”、“2”], 测试2:[“1”
const data = {
test:["1","2"],
test2:["1","2"]
}
我正在尝试转换此格式。我正在使用Object.values(数据),其中我只能使用数组。我需要这个格式
我的代码:
让输出=对象值(数据)
您需要使用
Object.entries
访问键(“test”、“test2”等)和值(数组),然后将值映射到具有label
和value
属性(基于值)的对象数组
像这样的
const数据={
测试:[“1”、“2”],
测试2:[“1”,“2”]
}
让输出=Object.entries(data.map)([key,values])=>({
[key]:values.map(v=>({label:v,value:v}))
}))
console.info(输出)
使用Object.entries
和map
构建数组
const format=obj=>
Object.entries(obj.map)([key,arr])=>({
[键]:arr.map(值=>({
标签:值,值
}))
}));
常数数据={
测试:[“1”、“2”],
测试2:[“1”,“2”]
};
console.log(格式(数据))
是您唯一尝试过的对象.values()
吗?你试过其他代码吗?(如果是这样,请添加它)我只是子数组的数组,但没有得到任何逻辑如何实现它?对象中的数组总是由两个元素组成,还是可以有更多元素?我可以使用object.entries获取这两个数组吗?我的问题是关于对象中的[“1”,“2”]
值。似乎您想从中创建一个对象数组[{label:“1”,value:“2”}]
。但是,如果您有一个像[“1”、“2”、“3”、“4”]
这样的数组,您应该得到[{label:“1”,value:“2”},{label:“3”,value:“4”}]
?或者你永远不会有一个数组的形状是[“1”、“2”、“3”、“4”]
?我这样问是因为你有一个数组,其中有一个对象(数组的点是什么?)你的输出与我的输出不匹配。它将是类似{“test2”:[{“label”:“1”,“value”:“2”}]}this@sujon哦,你想要一个冗余阵列吗?这有点奇怪,但确实很简单。我会更新我的answer@sujon修正了,但是你应该在前面提供正确的信息,以及你已经尝试过的内容。你可以看看这个@sujon否,因为它已经被删除了。你可以看看这个吗
output : [{test:[{label:"1",value:"1"},{label:"2",value:"2"}]},{test2:[{label:"1",value:"1"},{label:"2",value:"2"}]]