From b0b15f726cb0fc4f9f269fee0ff9ed14c6d6093d Mon Sep 17 00:00:00 2001 From: harukin-OneMix4 Date: Fri, 7 Jul 2023 12:28:09 +0900 Subject: [PATCH] =?UTF-8?q?=E5=88=97=E8=BB=8A=E3=81=AE=E7=8F=BE=E5=9C=A8?= =?UTF-8?q?=E5=9C=B0=E3=83=9E=E3=83=BC=E3=82=AF=E3=82=92=E8=A1=A8=E7=A4=BA?= =?UTF-8?q?(=E6=9C=AA=E5=AE=8C=E6=88=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActionSheetComponents/EachTrainInfo.js | 86 +++++++++++++++++-- 1 file changed, 77 insertions(+), 9 deletions(-) diff --git a/components/ActionSheetComponents/EachTrainInfo.js b/components/ActionSheetComponents/EachTrainInfo.js index 2ab7cc5..d906cf1 100644 --- a/components/ActionSheetComponents/EachTrainInfo.js +++ b/components/ActionSheetComponents/EachTrainInfo.js @@ -46,7 +46,9 @@ export const EachTrainInfo = ({ //data.trainData.Pos = "鴨川~端岡"; //test if (!data.trainData?.Pos) return; if (data.trainData?.Pos.match("~")) { - const pos = data.trainData?.Pos.split("~"); + const pos = data.trainData?.Pos.replace("(下り)", "") + .replace("(上り)", "") + .split("~"); setCurrentPosition([getStationData(pos[0]), getStationData(pos[1])]); } else { setCurrentPosition([getStationData(data.trainData?.Pos)]); @@ -75,11 +77,66 @@ export const EachTrainInfo = ({ .map((d) => d.StationNumber); return StationNumbers[0]; }); - console.log( - currentPosition.map((d) => { - return stopStationIDList.indexOf(d); - }) - ); + function findReversalPoints(array) { + let reversalPoints = []; + + for (let i = 0; i < stopStationIDList.length; i++) { + if (array.length == 1) { + console.log(stopStationIDList[i], array[0]); + if (stopStationIDList[i] == array[0]) { + reversalPoints.push(i); + } else if ( + stopStationIDList[i] > array[0] && + stopStationIDList[i + 1] < array[0] + ) { + reversalPoints.push(i + 1); + } + } else { + if ( + stopStationIDList[i] == array[0] && + stopStationIDList[i + 1] == array[1] + ) { + reversalPoints.push(i + 1); + } else if ( + stopStationIDList[i] == array[1] && + stopStationIDList[i + 1] == array[0] + ) { + reversalPoints.push(i + 1); + } else if ( + array[0] < stopStationIDList[i] && + stopStationIDList[i] < array[1] + ) { + reversalPoints.push(i); + } else if ( + array[1] < stopStationIDList[i] && + stopStationIDList[i] < array[0] + ) { + reversalPoints.push(i); + } else if ( + stopStationIDList[i + 1] < array[0] && + stopStationIDList[i + 1] < array[1] && + stopStationIDList[i] > array[0] && + stopStationIDList[i] > array[1] + ) { + reversalPoints.push(i + 1); + } else if ( + stopStationIDList[i + 1] > array[0] && + stopStationIDList[i + 1] > array[1] && + stopStationIDList[i] < array[0] && + stopStationIDList[i] < array[1] + ) { + reversalPoints.push(i + 1); + } + } + } + + return reversalPoints; + } + + // 使用例 + const points = findReversalPoints(currentPosition); + console.log(currentPosition, points); + console.log(currentPosition.length, points.length); useEffect(() => { console.log(data); @@ -104,7 +161,9 @@ export const EachTrainInfo = ({ }; const migrateTrainName = (string) => { - return string.replace("マリン", "マリンライナー"); + return string + .replace("マリン", "マリンライナー") + .replace("ライナーライナー", "ライナー"); }; return ( @@ -191,7 +250,11 @@ export const EachTrainInfo = ({ textAlign: "right", }} > - {data.trainData?.Pos.split("~")[0]} + { + data.trainData?.Pos.replace("(下り)", "") + .replace("(上り)", "") + .split("~")[0] + } - {data.trainData?.Pos.split("~")[1]} + { + data.trainData?.Pos.replace("(下り)", "") + .replace("(上り)", "") + .split("~")[1] + } ) : ( @@ -378,6 +445,7 @@ export const EachTrainInfo = ({ ? "にゃーん" : "ほげ")} {currentPosition} */} + {points.includes(index) ? "🚉" : ""} {time} {se}