結合処理を関数化

This commit is contained in:
harukin-OneMix4 2024-02-02 12:29:42 +09:00
parent e72cb03e08
commit edaa16cf35

View File

@ -77,76 +77,72 @@ export const EachTrainInfo = (props) => {
}, [trainData, showNearTrain]); }, [trainData, showNearTrain]);
const openBackTrainInfo = (stationInfo, currentTrainIndex) => { const openBackTrainInfo = (stationInfo, currentTrainIndex) => {
const mainTrainStationPosition = trainData.findIndex( const migrationArray = (stationInfo) => {
(d) => d.split(",")[0] == stationInfo const mainTrainStationPosition = trainData.findIndex(
); (d) => d.split(",")[0] == stationInfo
);
const relationMain = (() => { const relationMain = (() => {
if (mainTrainStationPosition == 0) return "head"; if (mainTrainStationPosition == 0) return "head";
if (mainTrainStationPosition == trainData.length - 1) return "tail"; if (mainTrainStationPosition == trainData.length - 1) return "tail";
return "middle"; return "middle";
})(); })();
const subTrainStationPosition = showNearTrain.findIndex( const subTrainStationPosition = showNearTrain.findIndex(
(d) => d.split(",")[0] == stationInfo (d) => d.split(",")[0] == stationInfo
); );
const relationSub = (() => { const relationSub = (() => {
if (subTrainStationPosition == 0) return "head"; if (subTrainStationPosition == 0) return "head";
if (subTrainStationPosition == showNearTrain.length - 1) return "tail"; if (subTrainStationPosition == showNearTrain.length - 1) return "tail";
return "middle"; return "middle";
})(); })();
switch (relationMain) { switch (relationMain) {
case "head": case "head":
if (relationSub == "head") { if (relationSub == "head") {
break; return;
} else if (relationSub == "tail") { } else if (relationSub == "tail") {
const migrationTrainData = [ return [
...showNearTrain.slice(0, subTrainStationPosition), ...showNearTrain.slice(0, subTrainStationPosition),
...trainData, ...trainData,
]; ];
setTrainData(migrationTrainData); } else if (relationSub == "middle") {
} else if (relationSub == "middle") { return [
const migrationTrainData = [ ...showNearTrain.slice(0, subTrainStationPosition),
...showNearTrain.slice(0, subTrainStationPosition), ...trainData,
...trainData, ];
]; } else return;
setTrainData(migrationTrainData); case "tail":
} if (relationSub == "head") {
break; return [
case "tail": ...trainData.slice(0, mainTrainStationPosition),
if (relationSub == "head") { ...showNearTrain,
const migrationTrainData = [ ];
...trainData.slice(0, mainTrainStationPosition), } else if (relationSub == "tail") {
...showNearTrain, return;
]; } else if (relationSub == "middle") {
setTrainData(migrationTrainData); return [
} else if (relationSub == "tail") { ...trainData.slice(0, mainTrainStationPosition),
break; ...showNearTrain.slice(subTrainStationPosition),
} else if (relationSub == "middle") { ];
const migrationTrainData = [ } else return;
...trainData.slice(0, mainTrainStationPosition), case "middle":
...showNearTrain.slice(subTrainStationPosition), if (relationSub == "head") {
]; return [
setTrainData(migrationTrainData); ...trainData.slice(0, mainTrainStationPosition),
} ...showNearTrain,
break; ];
case "middle": } else if (relationSub == "tail") {
if (relationSub == "head") { return [
const migrationTrainData = [ ...showNearTrain.slice(0, subTrainStationPosition),
...trainData.slice(0, mainTrainStationPosition), ...trainData.slice(mainTrainStationPosition),
...showNearTrain, ];
]; } else return;
setTrainData(migrationTrainData); }
} else if (relationSub == "tail") { };
const migrationTrainData = [ const array = migrationArray(stationInfo);
...showNearTrain.slice(0, subTrainStationPosition), if (!array) return;
...trainData.slice(mainTrainStationPosition), setTrainData(array);
];
setTrainData(migrationTrainData);
}
break;
}
setIsConcatNear(true); setIsConcatNear(true);
}; };