結合処理を関数化

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]);
const openBackTrainInfo = (stationInfo, currentTrainIndex) => {
const mainTrainStationPosition = trainData.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const migrationArray = (stationInfo) => {
const mainTrainStationPosition = trainData.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const relationMain = (() => {
if (mainTrainStationPosition == 0) return "head";
if (mainTrainStationPosition == trainData.length - 1) return "tail";
return "middle";
})();
const relationMain = (() => {
if (mainTrainStationPosition == 0) return "head";
if (mainTrainStationPosition == trainData.length - 1) return "tail";
return "middle";
})();
const subTrainStationPosition = showNearTrain.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const relationSub = (() => {
if (subTrainStationPosition == 0) return "head";
if (subTrainStationPosition == showNearTrain.length - 1) return "tail";
return "middle";
})();
const subTrainStationPosition = showNearTrain.findIndex(
(d) => d.split(",")[0] == stationInfo
);
const relationSub = (() => {
if (subTrainStationPosition == 0) return "head";
if (subTrainStationPosition == showNearTrain.length - 1) return "tail";
return "middle";
})();
switch (relationMain) {
case "head":
if (relationSub == "head") {
break;
} else if (relationSub == "tail") {
const migrationTrainData = [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData,
];
setTrainData(migrationTrainData);
} else if (relationSub == "middle") {
const migrationTrainData = [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData,
];
setTrainData(migrationTrainData);
}
break;
case "tail":
if (relationSub == "head") {
const migrationTrainData = [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain,
];
setTrainData(migrationTrainData);
} else if (relationSub == "tail") {
break;
} else if (relationSub == "middle") {
const migrationTrainData = [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain.slice(subTrainStationPosition),
];
setTrainData(migrationTrainData);
}
break;
case "middle":
if (relationSub == "head") {
const migrationTrainData = [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain,
];
setTrainData(migrationTrainData);
} else if (relationSub == "tail") {
const migrationTrainData = [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData.slice(mainTrainStationPosition),
];
setTrainData(migrationTrainData);
}
break;
}
switch (relationMain) {
case "head":
if (relationSub == "head") {
return;
} else if (relationSub == "tail") {
return [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData,
];
} else if (relationSub == "middle") {
return [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData,
];
} else return;
case "tail":
if (relationSub == "head") {
return [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain,
];
} else if (relationSub == "tail") {
return;
} else if (relationSub == "middle") {
return [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain.slice(subTrainStationPosition),
];
} else return;
case "middle":
if (relationSub == "head") {
return [
...trainData.slice(0, mainTrainStationPosition),
...showNearTrain,
];
} else if (relationSub == "tail") {
return [
...showNearTrain.slice(0, subTrainStationPosition),
...trainData.slice(mainTrainStationPosition),
];
} else return;
}
};
const array = migrationArray(stationInfo);
if (!array) return;
setTrainData(array);
setIsConcatNear(true);
};