javascript无法映射具有嵌套值的对象数组
尝试映射具有嵌套在子对象结构中的值的对象数组,如:javascript无法映射具有嵌套值的对象数组,javascript,arrays,typescript,mapping,javascript-objects,Javascript,Arrays,Typescript,Mapping,Javascript Objects,尝试映射具有嵌套在子对象结构中的值的对象数组,如: const objs = [{ "B": { "value": 1, }, "D": { "value": "45" }, "E": { "value": "234" }, "A": { "value": "543" },
const objs = [{
"B": {
"value": 1,
},
"D": {
"value": "45"
},
"E": {
"value": "234"
},
"A": {
"value": "543"
},
"C": {
"value": "250"
}
},...]
[
{ name: 'B', value: 1 },
{ name: 'D', value: '45' },
{ name: 'E', value: '234' },
{ name: 'A', value: '543' },
{ name: 'C', value: '250' }
]
对于结构,如下所示:
const objs = [{
"B": {
"value": 1,
},
"D": {
"value": "45"
},
"E": {
"value": "234"
},
"A": {
"value": "543"
},
"C": {
"value": "250"
}
},...]
[
{ name: 'B', value: 1 },
{ name: 'D', value: '45' },
{ name: 'E', value: '234' },
{ name: 'A', value: '543' },
{ name: 'C', value: '250' }
]
映射的结果是未定义的
示例:Object.keys中缺少return。也可以使用Object.entries而不是Object.keys来获取键和值
常量objs=[{
B:{
价值:1,
},
D:{
价值:45
},
E:{
价值:234
},
A:{
价值:543
},
C:{
价值:250
}
}];
const-mapped=objs.mapkey,\ujs=>{
return Object.entrieskey.map[名称{
价值
}] => {
名称
价值
}
}.平坦;
console.logmapped Object.keys中缺少return。也可以使用Object.entries而不是Object.keys来获取键和值
常量objs=[{
B:{
价值:1,
},
D:{
价值:45
},
E:{
价值:234
},
A:{
价值:543
},
C:{
价值:250
}
}];
const-mapped=objs.mapkey,\ujs=>{
return Object.entrieskey.map[名称{
价值
}] => {
名称
价值
}
}.平坦;
console.logmapped 缺少返回语句和值属性定义
此外,为了避免结果中出现嵌套数组,您可能希望使用而不是:
常量objs=[{
B:{
价值:1,
},
D:{
价值:45
},
E:{
价值:234
},
A:{
价值:543
},
C:{
价值:250
}
}]
const mapped=objs.flatmappkey,索引=>{
return Object.keyskey.mapel=>{
姓名:el,
值:键[el]。值
}
}
您缺少返回语句和值属性定义
此外,为了避免结果中出现嵌套数组,您可能希望使用而不是:
常量objs=[{
B:{
价值:1,
},
D:{
价值:45
},
E:{
价值:234
},
A:{
价值:543
},
C:{
价值:250
}
}]
const mapped=objs.flatmappkey,索引=>{
return Object.keyskey.mapel=>{
姓名:el,
值:键[el]。值
}
}
logmapped您应该操作objs[0],而不是objs,因为它是一个对象数组,而不是对象数组
let array = []
for(let object in objs[0]){
array.push({
"name": object,
"value": objs[0][object].value
})
}
您应该在objs[0]上操作,而不是objs,因为它是一个对象数组,而不是对象数组
let array = []
for(let object in objs[0]){
array.push({
"name": object,
"value": objs[0][object].value
})
}
缺少return。缺少return。很好的例子。有没有一种方法可以像示例中那样在迭代过程中保持元素的顺序?谢谢!结果中对象的顺序是否与关键点的顺序不同?在我这方面,它似乎是相同的B,D,E,A,C。很好的例子。有没有一种方法可以像示例中那样在迭代过程中保持元素的顺序?谢谢!结果中对象的顺序是否与关键点的顺序不同?在我这方面,它似乎是相同的B,D,E,A,C。我的错误,我没有添加整个数据结构只有三个点,有像stackblitz示例中那样的对象数组。我的错误,我没有添加整个数据结构只有三个点,有像stackblitz示例中那样的对象数组。