【发布时间】:2021-09-01 17:11:44
【问题描述】:
我有一个如下的对象数组
let arr = [
{
name: "string 1",
details: [
{
id: 1,
values: [
{ date: "12-Mar", score: "15" },
{ date: "13-Mar", score: "16" },
{ date: "14-Mar", score: "17" },
{ date: "15-Mar", score: "18" },
],
},
],
},
{
name: "string 2",
details: [
{
id: 2,
values: [
{ date: "12-Mar", score: "16" },
{ date: "13-Mar", score: "17" },
{ date: "14-Mar", score: "18" },
{ date: "15-Mar", score: "19" },
],
},
],
},
{
name: "string 3",
details: [
{
id: 2,
values: [
{ date: "12-Mar", score: "21" },
{ date: "13-Mar", score: "22" },
{ date: "14-Mar", score: "23" },
{ date: "15-Mar", score: "24" },
],
},
],
},
];
我也有与下面的对象对象相同的数据
let obj = {
"string 1": {
details: [
{
id: 1,
values: [
{ date: "12-Mar", score: "15" },
{ date: "13-Mar", score: "16" },
{ date: "14-Mar", score: "17" },
{ date: "15-Mar", score: "18" },
],
},
],
},
"string 2": {
details: [
{
id: 2,
values: [
{ date: "12-Mar", score: "16" },
{ date: "13-Mar", score: "17" },
{ date: "14-Mar", score: "18" },
{ date: "15-Mar", score: "19" },
],
},
],
},
"string 3": {
details: [
{
id: "2",
values: [
{ date: "12-Mar", score: "21" },
{ date: "13-Mar", score: "22" },
{ date: "14-Mar", score: "23" },
{ date: "15-Mar", score: "24" },
],
},
],
},
};
我想以数组的形式查找所有日期和所有分数。 对于对象数组,借助此处的答案 (How to find all values of a specific key in an array of nested objects?),我能够使用以下代码获得结果。
因为我不想重复日期,所以我创建了一个Set
dates = new Set(getValue(arr, "date"))
但是,对于对象的对象,我无法得到结果。我该怎么做。
另外,我可以选择将我的数据作为对象的array 或对象的object 获取。由于我必须执行大量操作/分析(我将在 D3 库中使用它来构建图表),哪种格式更好?任何人都可以指导吗?谢谢。
【问题讨论】:
-
你想得到一个对象数组中所有日期的数组
标签: javascript arrays object