获取javascript对象中共享同一同级的所有值
我正试图从这个从API提取的json文件中获取与特定的dayID匹配的所有startTimes。因此,结果将是从20191106开始的8709009309609901050,然后是从20191107开始的startTime组,等等。我假设了某种循环,但很难找到唯一标识符获取javascript对象中共享同一同级的所有值,javascript,json,api,loops,Javascript,Json,Api,Loops,我正试图从这个从API提取的json文件中获取与特定的dayID匹配的所有startTimes。因此,结果将是从20191106开始的8709009309609901050,然后是从20191107开始的startTime组,等等。我假设了某种循环,但很难找到唯一标识符 { "Availability": [ { "dayID": "20191106", "routeID": "313", "startTim
{
"Availability": [
{
"dayID": "20191106",
"routeID": "313",
"startTime": "870"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "900"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "930"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "960"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "990"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1020"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1050"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "450"
}
]
}
您可以使用.filter和.map
const jsonData = {
"Availability": [
{
"dayID": "20191106",
"routeID": "313",
"startTime": "870"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "900"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "930"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "960"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "990"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1020"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1050"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "450"
}
]
}
const dayID = "20191106"
const startTimes = jsonData.Availability.filter(a => a.dayID === dayID).map(a => a.startTime)
console.log(startTimes)
下面是一个执行代码的JSFIDLE 您可以使用.filter和.map
const jsonData = {
"Availability": [
{
"dayID": "20191106",
"routeID": "313",
"startTime": "870"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "900"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "930"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "960"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "990"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1020"
},
{
"dayID": "20191106",
"routeID": "313",
"startTime": "1050"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191107",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "360"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "390"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "420"
},
{
"dayID": "20191108",
"routeID": "313",
"startTime": "450"
}
]
}
const dayID = "20191106"
const startTimes = jsonData.Availability.filter(a => a.dayID === dayID).map(a => a.startTime)
console.log(startTimes)
下面是一个执行代码的JSFIDLE 您可以使用reducer按dayID进行分组:
const数据={
“可用性”:[
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“870”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“900”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“930”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“960”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“990”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“1020”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“1050”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“360”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“390”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“420”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“360”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“390”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“420”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“450”
}
]
}
console.log(数据.可用性.reduce)(acc,curr)=>{
if(根据[当前日期ID]){
acc[curr.dayID].push(curr.startTime);
}否则{
acc[当前日期]=[当前开始时间];
}
返回acc;
},{}))
您可以使用reducer按dayID进行分组:
const数据={
“可用性”:[
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“870”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“900”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“930”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“960”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“990”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“1020”
},
{
“dayID”:“20191106”,
“routeID”:“313”,
“开始时间”:“1050”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“360”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“390”
},
{
“dayID”:“20191107”,
“routeID”:“313”,
“开始时间”:“420”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“360”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“390”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“420”
},
{
“dayID”:“20191108”,
“routeID”:“313”,
“开始时间”:“450”
}
]
}
console.log(数据.可用性.reduce)(acc,curr)=>{
if(根据[当前日期ID]){
acc[curr.dayID].push(curr.startTime);
}否则{
acc[当前日期]=[当前开始时间];
}
返回acc;
},{}))
嗯,dayID
不是唯一标识符吗?嗯,dayID
不是唯一标识符吗?