sembokulove
@sembokulove (Missing place)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

運賃検索プログラムで、ifでAとBの選択状態のパターンを作り、1区間と、2.3㎞ですよと返し、 さらに1区間から配列を参照するようなプログラムを開発したいです。

出発駅A、到着駅Bを選択すると、120円と返らせたいです。
{ name: 'A', distance: 1.5 }→{ name: '["A", "B"], distance: 1.5 }にしたいのですが、エラーです。さらに、AとCにするとAとBの運賃が加算されます。

個人的には、ifを使って、AとBを選択状態にすると、1区間という配列を返し、
さらに1区間から、料金やら何やらという配列をあびきだしたいです。
どうしたらいいでしょうか。
ifでAとBの選択状態のパターンを作り、1区間と、2.3㎞ですよと返し、
さらに1区間から配列を参照するようなプログラムを開発したいです。
無理でしょうか。

<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
/**
* distance : 区間距離(km)
* name : 区間名
* price : 区間における乗車運賃
*/
const price_table = [
{ distance: 0, name: '見送り', price: { normal: 120, child: 60 } },
{ distance: 3, name: '1区間', price: { normal: 150, child: 80 } }, ];

/**
* name: '駅名'
* distance: 次の駅までの距離
*/
const stations = [
{ name: 'A', distance: 1.5 },
{ name: 'B', distance: 1.5 },
];
</script>
<script>
$(function () {
$(document).on('change', function () {
var f = $('[name=from]').val();
var t = $('[name=to]').val();

// 何番目の駅かを探す
let from_idx = stations.findIndex(station => station.name == f);
let to_idx = stations.findIndex(station => station.name == t);

// from, to が昇順になるようにする。
let from_to = [from_idx, to_idx].sort();

// どちらかが未入力の場合、もしくは駅名が見つからない場合は処理を受け付けないようにする。
if (from_to[0] < 0) {
return;
}

// 駅間の距離を加算する。
let d = 0;
for (let i = from_to[0]; i < from_to[1]; i++) {
d += stations[i].distance;
}

// 距離の合計値による料金テーブルを探す
const period = price_table.find(price => d <= price.distance);

$('span[name=distance]').html(d);
$('span[name=kukan]').html(period.name);
$('span[name=price]').html(period.price.normal);
});
});
</script>

</head>

<body>
<div>
出発駅:
<select name="from">
<option value="">--</option>
<option value="A">A</option>
<option value="B">B</option>
</select>
</div>
<div>
到着駅略
</div>
距離:<span name="distance"></span>km<br />
区間:<span name="kukan"></span><br />
料金:<span name="price"></span>円
</body>

</html>

jsのプログラムサイトをいろいろ調べてみましたが、グッとくるものはなかったです。

0

No Answers yet.

Your answer might help someone💌