2017-04-10 19 views
1

ボタンをクリックすると、新しい要素を配列に追加(追加)する関数を呼び出し、その要素が画面に表示されます。この場合、私はすでに存在する単語のリストに新しい単語を追加しようとしています。私はいくつかの問題を抱えている:新しい要素を配列に追加する

このようなページにプリントアウトする配列を取得する方法
  1. :(https://imgur.com/a/He4vK)。配列の要素を表示するために改行を含むいくつかの新しい段落タグを記述するだけですか?

  2. 私のボタンには基本的に何か問題があるようです。それは私がしたいことをしないだけでなく、それを試してみることさえできません。私が望むテキスト。

  3. addToArray関数は、呼び出されたときには実行されません。それが間違った場所にあるのか、私が書いた機能が構文的に完全に間違っているのか分かりません。

    <h1>Adding elements onto the end of an array:</h1> 
    <p>Click the button below to append more values to the array!</p> 
    <button id="btnAdd" value="Try it!" onclick="addFruitOnClick()"/> 
    
    <script type = "text/javascript"> 
        var foods = []; 
        foods[0] = "Banana"; 
        foods[1] = "Orange"; 
        foods[2] = "Apple"; 
        foods[3] = "Mango"; 
        foods[4] = "Lemon"; 
    
        var i = 0; 
        while (i < foods.length) { 
         document.write(foods[i] + "<br />"); 
        } 
    
    function addFruitOnClick() { // Define first function 
        document.write("hi"); 
    } 
    
    function addToArray() { // Define what the second function's task is 
    
         foods.concat([ // Using (array.concat) to append to existing array 
            "dragonfruit", 
            "Cherry", 
            "Lime", 
            "Strawberry" 
            ]); 
        } 
    
    } // End of addToArray 
    addtoArray(); 
    
    </script> 
    

    は、私は私の頭/胴/ htmlタグを残したが、それはそれのJISTです:

は、ここで私がこれまで持っているものです。どんな助けもありがとうございます。

+0

最初に、addtoArray()はaddToArray()と同じではありません。また、配列に追加するには、配列に追加するためにプッシュするだけです。例えば、foods.push( "theNextFruit")あなたの質問は、あなたが宿題をしていると思うように思えます。果物のリストがw3schoolのものと同じであるという事実https://www.w3schools.com/jsref/jsref_push.asp Haha。 – Vbudo

+0

あなたのwhileループは永遠に実行されます。 –

+0

@Vbudoはい、これは宿題のためのものです。実際にたくさん助けてくれたリンクに感謝します:) –

答えて

0

次の例のように、配列に新しい要素を追加するためにpushを使用することができます。

foods.push("Kiwi"); 
+0

それは束に助けてくれたすべての人に感謝します。これが私と結びついたものです。ボタンをクリックするだけで、ボタンクリックごとにfruits.pushから1つの新しい要素が出力されるように、コードを記述する方法が不思議でした。また、私はちょうど改行で果物を印刷したいのでもっときれいに見えます。何か案は? https://jsfiddle.net/eichtower15/xuou9tdn/ –

0

を私はCONCATとaddFruitOnClick機能のために、あなたのコードのいくつかの変更を行いました。

var foods = []; 
foods[0] = "Banana"; 
foods[1] = "Orange"; 
foods[2] = "Apple"; 
foods[3] = "Mango"; 
foods[4] = "Lemon"; 

function display(){ 
    var i = 0; 
    while (i < foods.length) { 
     document.write(foods[i++] + "<br />"); 
    } 
    document.write("<br />"); 
} 

function addFruitOnClick(fruit) { // Define first function 
    foods.push(fruit); 
} 

function addToArray() { // Define what the second function's task is 

     foods = foods.concat([ // Using (array.concat) to append to existin array 
       "dragonfruit", 
       "Cherry", 
       "Lime", 
       "Strawberry" 
       ]); 

} // End of addToArray 

display(); 
addFruitOnClick("Cherry"); 
display(); 
addToArray(); 
display(); 
0

私は少しあなたのコードを変更する - あなたはあなたのニーズに合わせて成形する概念で遊ぶことができます - 基本的に果物の単一のアレイがあり、これは、など、動的に作成したリストに示されています。

次に、アレイに特定の食品を追加する機能を呼び出す一連のボタンがあります。

広告ボタンをクリックする - 新しいフルーツをアレイに追加できるようになります。新しいコンテンツを表示するには、それを再レンダリングするだけです。これは、同様に果物を取り除くように修正することができます

var foods = ["Banana", "Orange","Apple", "Mango","Lemon"] 
 

 
showFoods(); 
 

 
function showFoods() { 
 
    var str= ''; 
 
    
 
    foods.forEach(function(food) { 
 
    str += '<li>' + food + '</li>'; 
 
    }); 
 
    
 
    document.getElementById('foods').innerHTML = str; 
 
} 
 

 
function addFood(food){ 
 
    foods.push(food); 
 
    showFoods(); 
 
}
#foods{list-style:none}
<ul id="foods"></ul> 
 
<button type="button" onclick="addFood('Dragonfruit')">Add Dragonfruit</button> 
 
<button type="button" onclick="addFood('Cherry')">Add Cherry</button> 
 
<button type="button" onclick="addFood('Lime')">Add Lime</button> 
 
<button type="button" onclick="addFood('Strawberry')">Add Strawberry</button>

0

まず、スクリプトの最後に、あなたがaddToArray()を呼び出す必要があり、ないaddtoArray()(ケース事項)

次に、関数concatは配列を更新しません。

foods = foods.concat([ "dragonfruit", "Cherry" /* ... */ ]) 

または

[ "dragonfruit", "Cherry" /* ... */ ].forEach(function(fruit){ food.push(fruit) }) 

あなたのコードはもう永遠に実行されません。