私はJavaScriptを練習しており、少しプロジェクトを作りました...対応するボタンをクリックすると、太陽系内のさまざまなボディの直径を取得します。JavaScript関数の助けが必要
私はこれを行うことができましたが、それほど効率的ではありません。現在、私のコードが動作する唯一の方法は11の関数です。私は2つのオブジェクトも持っています(1つはボディ名用、もう1つはボディ径用です)。
私のコードをより効率的にするためのフィードバックは大歓迎です。ありがとうございました!代わりに、各ボタンに別々の機能を使用しての:-)
//JavaScript
var bodyName = {
\t su:"the Sun",
\t me:"Mercury",
\t ve:"Venus",
\t ea:"Earth",
\t mo:"the Moon",
\t ma:"Mars",
\t ju:"Jupiter",
\t sa:"Saturn",
\t ur:"Uranus",
\t ne:"Neptune",
\t pl:"Pluto"
};
var bodyDiam = {
\t su:864576,
\t me:3032,
\t ve:7521,
\t ea:7918,
\t mo:2159,
\t ma:4212,
\t ju:86881,
\t sa:72367,
\t ur:31518,
\t ne:30599,
\t pl:1475
};
function suInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.su;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.su;
}
function meInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.me;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.me;
}
function veInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ve;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ve;
}
function eaInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ea;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ea;
}
function moInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.mo;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.mo;
}
function maInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ma;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ma;
}
function juInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ju;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ju;
}
function saInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.sa;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.sa;
}
function urInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ur;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ur;
}
function neInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.ne;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.ne;
}
function plInfo() {
\t document.getElementById("bodyNameDisplay").innerHTML = bodyName.pl;
\t document.getElementById("bodyDiamDisplay").innerHTML = bodyDiam.pl;
}
<!--CSS-->
p {
font-family: arial, sans-serif;
font-size: 1em;
}
.button {
font-size: 1em;
font-weight: bold;
color: #fff;
border: none;
border-radius: 0;
padding: 0.5em;
margin: 0 0.25em 0.5em 0;
background-color: #393;
}
.result {
font-weight: bold;
color: #e80;
}
<!--html-->
<!--buttons-->
<button type="button" class="button" id="suButton" onclick="suInfo()">Sun</button>
<button type="button" class="button" id="meButton" onclick="meInfo()">Mercury</button>
<button type="button" class="button" id="veButton" onclick="veInfo()">Venus</button>
<button type="button" class="button" id="eaButton" onclick="eaInfo()">Earth</button>
<button type="button" class="button" id="moButton" onclick="moInfo()">Moon</button>
<button type="button" class="button" id="maButton" onclick="maInfo()">Mars</button>
<button type="button" class="button" id="juButton" onclick="juInfo()">Jupiter</button>
<button type="button" class="button" id="saButton" onclick="saInfo()">Saturn</button>
<button type="button" class="button" id="urButton" onclick="urInfo()">Uranus</button>
<button type="button" class="button" id="neButton" onclick="neInfo()">Neptune</button>
<button type="button" class="button" id="plButton" onclick="plInfo()">Pluto</button>
<!--Information Display-->
<p>The diameter of <span class="result" id="bodyNameDisplay">this body</span> is <span class="result" id="bodyDiamDisplay">this many</span> miles.</p> \t
将来的に@JoshBeam、質問を閉じるための理由として、コードレビューを使用しないでください。リクエストを評価し、*あなたが求めているものが不明*、*広すぎ*、主に意見ベース*などの理由を使用してください。** [この回答は_Aです。 Stack Overflowユーザーのコードレビューへのガイド](https://codereview.meta.stackexchange.com/a/5778/120114) –
@ JoshBeamいいえ、それは広すぎます。だからあなたはそれを閉じなければならないのです。それが別の場所に収まるかどうかは無関係です。それに、そこには良い質問が出る前に、深刻な仕事が必要です。 – Mast