获取在javascript对象中共享相同同级的所有值

我正在尝试从从API中提取的json文件中获取与特定 dayID 匹配的所有 startTimes 。因此,结果将是来自20191106的870、900、930、960、990、1020、1050,然后是来自20191107的startTime组,以此类推。我假设存在某种循环,但无法确定唯一标识符。

{
"Availability": [
        {
            "dayID": "20191106","routeID": "313","startTime": "870"
        },{
            "dayID": "20191106","startTime": "900"
        },"startTime": "930"
        },"startTime": "960"
        },"startTime": "990"
        },"startTime": "1020"
        },"startTime": "1050"
        },{
            "dayID": "20191107","startTime": "360"
        },"startTime": "390"
        },"startTime": "420"
        },{
            "dayID": "20191108","startTime": "450"
        }
    ]
}
xuu805 回答:获取在javascript对象中共享相同同级的所有值

您可以使用.filter和.map

const jsonData = {
"Availability": [
        {
            "dayID": "20191106","routeID": "313","startTime": "870"
        },{
            "dayID": "20191106","startTime": "900"
        },"startTime": "930"
        },"startTime": "960"
        },"startTime": "990"
        },"startTime": "1020"
        },"startTime": "1050"
        },{
            "dayID": "20191107","startTime": "360"
        },"startTime": "390"
        },"startTime": "420"
        },{
            "dayID": "20191108","startTime": "450"
        }
    ]
}
const dayID = "20191106"
const startTimes = jsonData.Availability.filter(a => a.dayID === dayID).map(a => a.startTime)
console.log(startTimes)

这里是执行代码的Jsfiddle。 https://jsfiddle.net/gho8b930/

,

您可以使用reducer按dayID分组:

const data = {
"Availability": [
        {
            "dayID": "20191106","startTime": "450"
        }
    ]
}


console.log(data.Availability.reduce((acc,curr) => {
  if(acc[curr.dayID]){
    acc[curr.dayID].push(curr.startTime);
  } else {
    acc[curr.dayID]= [curr.startTime];
  }
  return acc;
},{}))

本文链接:https://www.f2er.com/3151326.html

大家都在问