如何更改此数组中的值?

时间:2011-10-02 11:56:26

标签: jquery

这是我的代码:

var array = [{"number":"500","title":"whatever 500"},{"number":"400","title":"whatever 400"}];

alert(array[0].number); //should output 500

$.each(array, function(index, val)
{
    array[index].number = val * 5;
});

alert(array[0].number); //should output 2500

我正在尝试将我的数组中的所有numbers乘以5.但由于某种原因,它不起作用。它输出NaN(非数字)。当我尝试添加50时,它会输出[object Object]50

有人可以告诉我这里我做错了吗?

3 个答案:

答案 0 :(得分:2)

问题是val是对象,而不是它的特定值。因此,您试图将{"number":"500","title":"whatever 500"}乘以5,这无疑不起作用。

您可以使用this来引用循环中的当前元素。您的代码可能如下所示:

$.each(array, function() {
    this.number = this.number * 5;
});

事实上,您可以使用*= assignment operator

来缩短时间
$.each(array, function() {
    this.number *= 5;
});

答案 1 :(得分:1)

这是正确的each

$.each(array, function(index, val)
{
    array[index].number = val.number * 5;
});

您正在迭代数组中的对象,因为array包含对象。示例中的第一个val等于{"number":"500","title":"whatever 500"}

答案 2 :(得分:-2)

“500”不是数字(NaN),它是一个字符串。

尝试使用此数组:

var array = [{"number":500,"title":"whatever 500"},{"number":400,"title":"whatever 400"];