我有一组变量,代表二维数组中销售的商品的价格和数量。一世 已经对它进行了分类以找到最低价格。
我想通过引用数组将第一个项目(玩家A)的第二个变量(已售出的数量)设置为值(200)。
例如:
var playerASold;
var arr=[
[playerAPrice,playerASold],
[playerBPrice,playerBSold],
[playerCPrice,playerCSold]];
arr[0][1]=200;
这不起作用,可能是因为playerASold
当前的值为0并且它试图设置0 = 0.
如何引用变量而不是变量的值?
答案 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建议的那样,重构为具有价格和出售属性的可变玩家对象可能是个好主意。