简单的变量问题

时间:2012-08-27 15:07:20

标签: javascript

我正在尝试更改我的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}            

          ];

          }

感谢您的帮助。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

如果您知道这个职位,那么您可以这样做:

if (i > 5) {
  items[0].x = 50;
  items[0].y = 105;
  items[1].x = 110;
  items[1].y = 115;
}