如何引用存储在数组中的变量而不是其值?

时间:2013-04-20 05:30:46

标签: javascript arrays string

我有一组变量,代表二维数组中销售的商品的价格和数量。一世  已经对它进行了分类以找到最低价格。

我想通过引用数组将第一个项目(玩家A)的第二个变量(已售出的数量)设置为值(200)。

例如:

var playerASold;

var arr=[
    [playerAPrice,playerASold],
    [playerBPrice,playerBSold],
    [playerCPrice,playerCSold]];

arr[0][1]=200;

这不起作用,可能是因为playerASold当前的值为0并且它试图设置0 = 0.

如何引用变量而不是变量的值?

3 个答案:

答案 0 :(得分:2)

JavaScript没有C指针或C ++引用的概念,所以你必须以不同的方式来做。不要试图在数组中存储引用,而是尝试使数组成为数据的唯一持有者 这可能是这样的:

var players = [
    { price: 5, sold: 1 },
    { price: 3, sold: 6 },
    { price: 9, sold: 2 }
];

然后,而不是playerBSold,您可以使用players[1].sold。现在,如果需要,您可以使用变量代替1

答案 1 :(得分:0)

仔细看看你为array设置值的代码。你正在替换arr [0] [1]项值。以前它是playerASold即0和现在200.So你没有为playerSold分配值。这样做:

var arr=[[playerAPrice:0,playerASold:0],[playerBPrice:0,playerBSold:0],   [playerCPrice:0,playerCSold:0]];

并使用此:

arr[0].playerASold=200.

答案 2 :(得分:0)

Javascript原语(在本例中为Number)是不可变的。即,你无法改变他们的价值观。 Numbers上的操作会创建新数字。然而,物体是可变的。

正如icktoofay建议的那样,重构为具有价格和出售属性的可变玩家对象可能是个好主意。