2011-03-15 13 views
1

2つの配列(NAMEとSALES)を作成する必要があります。私は最大100のコンポーネントの配列に値を設定する必要があります。次に、calcPay()関数を使って総賃金を計算する必要があります。私は関数を動作させる方法を理解するのに苦労しています。それはPayカラムの結果のテーブルを「宣言されていない」ものとして表示するか、何個の名前と売り上げが入力されても、配列に挿入します。私は身体のスクリプトでこれを持っている:javascript配列の初心者、助けが必要です

var i=0; 
var NAME = new Array(); 
var SALES = new Array(); 
do 
{ 
    NAME[i]=getName(); 
    SALES[i]=getSales(); 
    i++; 
    var again=confirm("Would you like to enter another salesperson's stats?"); 
}while(again && i<=100); 

var i=0; 
for (var i=0;i<NAME.length;i++) 
{ 
    printRow(); 
} 

そして、これはヘッダである:

function getName() 
{ 
    do 
    { 
     var name=prompt("What is the salesperson's full name?"); 
    }while (name==""||name==null); 
    return name; 
} 

function getSales() 
{ 
    do 
    { 
     var sales=prompt("Please enter salesperson's sales."); 
    }while(sales==""||isNaN(sales)); 
    return parseFloat(sales); 
} 

calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

function printRow() 
{ 
    document.write("<tr>"); 
    document.write("<td>"+NAME[i]+"</td>"); 
    document.write("<td>"+SALES[i]+"</td>"); 
    var payment=calcPay(SALES[i]); 
    document.write("<td>"+payment+"</td>"); 
    document.write("</tr>"); 
} 

これは、私はちょうど私が持っていることを確認するには、任意の手段によって割り当ての全範囲ではありません配列の供給と操作に関するハンドル(私は明らかにそうではありません)。 ありがとうございます。

+0

エラーが表示されるコンソールを見てください。 'document.write'を使わないでください。 –

+5

'calcPay(sales)'は 'function calcPay(sales)'でなければなりません。 – ThiefMaster

+2

ああ私の神。最も簡単なことを見逃す方法は絶対に驚きです。ありがとうございました。 – unit

答えて

1

- あなたのコードは動作しますが、ここでそれを見つける:

http://jsfiddle.net/osher/GhZSf/

をしかし - 不足している "機能" はcalcPay

calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

前にそこにある

する必要があります
function calcPay(sales) 
{ 
    var pay=sales*.1+1000; 
    return pay; 
} 

すべてだ

+1

ありがとう、それをありがとう。少しばかげた気分ですが、時には小さなもの(少なくとも私は妻に伝えるものです)のときにはうれしいです。 – unit

-3

名前と売り上げが範囲外です。この機能は、あなたの思う通りのことをしません。それが間違っていても、それはできません。
if文を使用します。一般

function getName() 
{ 
    do 
    { 
     var name=prompt("What is the salesperson's full name?"); 
    }while (name==""||name==null); 
    return name; 
} 

function getSales() 
{ 
    do 
    { 
     var sales=prompt("Please enter salesperson's sales."); 
    }while(sales==""||isNaN(sales)); 
    return parseFloat(sales); 
} 
+1

それは間違っています。 JavaScriptの可変スコープではブロックではなく、ブロックで宣言されている関数です。 –

+0

文字列の出力をループしているコードを調べますか? –

+0

スコープについては、関数スコープを参照していないので、私はループスコープを参照していました。彼はdo文の中のvarを宣言しています –