1

我正在尝试更改 items 变量中的变量,但不知道该怎么做。

var items = [
            {name: '#builder', x: 0, y:15},
            {name: '#image', x: 0, y:15},
            {name: '#button', x: -100, y: -55}

          ];

    //I only want to change builder and image but not button...How to do this?

          if(i>5){
            items = [
            {name: '#builder', x: 50, y:105},
            {name: '#image', x: 110, y:115}            

          ];

          }

谢谢您的帮助。

4

2 回答 2

3

您是否考虑过使用对象哈希表?

var items = {
        '#builder' : { x: 0, y:15},
        '#image': { x: 0, y:15},
        '#button': {x: -100, y: -55}
        };

然后你可以像这样改变它们:

items['#builder'].x = 50;

如果这不是一个选项,那很酷,但是如果您想按名称查找内容,这对您来说可能是一条更好的路线。

除此之外,您必须遍历每条记录以找到您想要的名称并适当地设置值。

var items = [
            {name: '#builder', x: 0, y:15},
            {name: '#image', x: 0, y:15},
            {name: '#button', x: -100, y: -55}
          ];

function updateValues(name, x, y) {
    for(var i = 0; i < items.length; i++) {
         var item = items[i];
         if(item.name == name) {
             item.x = x;
             item.y = y;
             return;
         }
    }
}


updateValues('#builder', 50, 105);
于 2012-08-27T15:12:16.017 回答
1

如果你知道这个位置,那么你可以这样做:

if (i > 5) {
  items[0].x = 50;
  items[0].y = 105;
  items[1].x = 110;
  items[1].y = 115;
}
于 2012-08-27T15:09:23.787 回答