Javascript数组元素没有通过函数设置?

时间:2012-08-14 10:07:32

标签: javascript arrays element

我一直试图解决这个问题很长一段时间,并希望得到任何帮助。

代码如下,可在此处查看http://incoming.comule.com/isnan.html

<script>
var price = new Array();

function add(price) {
//alert("function add: is price not a number? = "+isNaN(price));
price[0] = price;
}

function addman() {
price[0] = 0.87;
}

function status() {
alert(price[0]);
}

function num() {
alert("function Number: is price not a number? = "+isNaN(Number(price[0])));
}

function pInt() {
alert("function parseInt: is price not a number? = "+isNaN(parseInt(price[0])));
}

function pFloat() {
alert("function parseFloat: is price not a number? = "+isNaN(parseFloat(price[0])));
}
</script>

<a href="javascript:add('0.45');">Add price 0.45</a> then click ... <a href="javascript:status();">status</a> ,
 <a href="javascript:num();">number</a> , <a href="javascript:pInt();">parseInt</a> , <a href="javascript:pFloat();">parseFloat</a>

<p>

<a href="javascript:addman();">set manually</a>

当我点击添加价格,然后是状态时,它显示为未定义,但是当我点击手动设置然后状态时,状态显示该值。唯一的区别是它是如何设置的,有谁知道如何通过函数变量添加它?

2 个答案:

答案 0 :(得分:1)

问题是你的数组和函数参数共享相同的名称。后者在函数范围内取代前者,因此您实际上无法访问外部数组。

更改参数名称,你会没事的。

答案 1 :(得分:1)

您只需将Array重命名为price以外的其他内容即可。 add函数price内部是指函数参数,而不是数组。