使用数组保存并打印列表

时间:2013-12-18 19:47:14

标签: javascript

我需要帮助打印并在javascript中保存数组中的元素。我知道我必须创建一个数组,然后使用for循环来保存和打印它,但我不知道如何。我想做什么我做一个简单的货币转换器,使用带数组的for循环来保存转换后的输入并显示它。这是我的代码:

JAVASCRIPT

var input = document.querySelector("#input");
var convert = document.querySelector("#convert");

var dollar = 0.51;
var euro = 0.11;

omvandla.onclick = function (){
    if(isNaN(input.value)){
        alert ("Use numbers");
    }
    else{
        console.log(("Dollar:" + input.value*dollar) + ("Euro:" + input.value*euro));
    }
};

HTML

<p>
    <form>
            <label>Kronor: <input type="text" id="kronor"/></label>
            <br><input type="submit" id="convert" value="Omvandla"/>
   </from>
</p>

如何在提交按钮后附加转换后的值?

4 个答案:

答案 0 :(得分:0)

在javascript中,向数组添加元素的方式是push函数

var myArray = [];
myArray.push(15);

然后循环遍历元素,你可以做这样的事情

for(var elem in myArray){
   //Do something with elem
}

从您的问题描述中,很难弄清楚您要对代码执行的操作。希望这有助于数组操作

答案 1 :(得分:0)

查看数组的for()语句。

for( var i = 0; i < myarray.length; i++ ){
        // ...statements ie document.write("<li> "+myarray[i]);
}

和(in)关联数组和对象。

obj = document; /* or "input" in your case */

for (var key in obj {
    document.write("<li> "+key+":"+obj[key]);
}

<强>更新

在你的情况下,我会使用一个关联的数组,所以我不需要遍历一个表,(尽管如果有人根据问题登陆这个页面,那些人可能会想要上面的内容)。相关联的数组会大大缩短范围。使用关联的数组执行此操作最终可能会看起来像这样。

// $table is an associated array of dollar rates
$table = {
euro:1.37,
Yuan:0.16,
yen:0.0096}

    /* associated arrays can be accessed in two ways, 
as a property or [] index of which allows a variable to be used. 
using the indexOf method helps use today. */


yen = 4500;
alert("value of yen in dollars "+ yen * $table.yen);
alert("value of yen in dollars "+ yen * $table['yen']);

// basic HTML interface to dropdown and input text bos

var htmldropdownobject = document.getElementById("convertFrom"); /* document.querySelector could be used, I'm old school */
var htmltextinputobject = document.getElementById("textbox_amount");
var typeOfMoney = htmldropdownobject.options[htmldropdownobject.selectedIndex].value;
var amount = htmltextinputobject.value;

// conversion.

alert("value of " + typeOfMoney + " in dollars"+ amount * $table.[typeOfMoney]");

最终你需要编写html和代码,这主要是为了指明你的方向,而不是试图编写你的代码。

答案 2 :(得分:0)

您可以使用array.push()函数将元素添加到数组的末尾。我的例子你会做的事情如下:

array = [];
...
omvandla.onclick = function (){
    if(isNaN(input.value)){
        alert ("Use numbers");
    }
    else{
        console.log(...);
        array.push(input.value);
    }
};

For more information about JavaScript arrays see here.

答案 3 :(得分:0)

如果要显示一个接一个的转换结果,可以这样做:

var input = document.querySelector("#kronor");
var convert = document.querySelector("#convert");

var dollar = 0.51;
var euro = 0.11;
var conversionArray = [];

convert.onclick = function (){
    if(isNaN(input.value)){
        alert ("Use numbers");
    }
    else{
        var dollarResult = input.value*dollar;
        var euroResult = input.value*euro;

        var newArrayEl = {
            dollar: dollarResult, 
            euro: euroResult
        };

        conversionArray.push(newArrayEl);
        console.log(conversionArray);

        document.getElementById("convertedValue").innerHTML = "Dollar: " + dollarResult + " Euro: " + euroResult + "<br>" + document.getElementById("convertedValue").innerHTML;

    }
};

然后,您可以通过以下方式访问转化的单个值: conversionArray[indexOfElement].dollar

这样您就不需要数组来存储值。如果你真的需要再次使用wvalues,请告诉我,并告诉你如何存储数组。

Here is a Fiddle,显示了它的工作原理。