【发布时间】:2018-03-30 16:18:54
【问题描述】:
我需要从包含许多(嵌套)对象的数组中获取单个对象值并将这些值保存在新数组中。这适用于以下地图:
var newArrayA = array.map(x => x.PI[0].ZZ);
var newArrayB = array.map(x => x.FS.CC.FR);
var newArrayC = array.map(x => x.FS.BD.FR);
如果所有对象都包含您在此处看到的所有值:
var array =
[
{ _id: 'MEuDZjQDw8XQk4ny7Y',
PI: [
{ZZ: "ABC"}
],
FS:
{ CC: {FR: 1},
BD: {FR: 2}
}
},
{ _id: 'gFsya9tHMAkAoPgvw',
PI: [
{ZZ: "DEF"}
],
FS:
{ CC: {FR: 3},
BD: {FR: 4}
}
}
]
在数组的数据结构中可能有更多的“id”对象以及更多的字段。但是,如果例如第二个对象不包含 FS 字段,我会收到错误消息:
var array =
[
{ _id: 'MEuDZjQDw8XQk4ny7Y',
PI: [
{ZZ: "ABC"}
],
FS:
{ CC: {FR: 1},
BD: {FR: 2}
}
},
{ _id: 'gFsya9tHMAkAoPgvw',
PI: [
{ZZ: "DEF"}
]
}
]
问题是我仍然需要从包含这些值的对象中获取 FS.CC 或 FS.BD 值。如果值不在对象中并且值在对象中,则如果我得到“空或未定义”,那将是非常好的:
var neededNewArrayC = [2, "empty"];
或者是否有其他解决方案?
【问题讨论】:
-
这肯定有一个欺骗目标,但我没有找到一个干净的...
标签: javascript arrays database object if-statement