根据javascript中的整数值更改对象属性

时间:2015-05-07 09:53:12

标签: javascript

我有一个对象Player,它具有不同轮次的不同属性,例如round_1,round_2,..,round_7。我想根据整数,圆值给它们值。

我认为可行的功能是:

//voor = round in Estonian
function valiVoor(player, r){
if (r == 1){
    return player.voor_1;
}
else if (r == 2){
    return player.voor_2;
}
else if (r == 3){
    return player.voor_3;
}
else if (r == 4){
    return player.voor_4;
}
else if (r == 5){
    return player.voor_5;
}
else if (r == 6){
    return player.voor_6;
}
else if (r == 7){
    return player.voor_7;
}
}

虽然呼唤功能:

valiVoor(player_one,1) = "asd";

不会更改属性player_one.voor_1 =" asd"。我应该使用数组还是有其他选择来解决这个问题?

3 个答案:

答案 0 :(得分:5)

您可以使用Bracket notation

player['voor_' + r] = 'asd'; //Equivalent to player.voor_# where # is the number r

如果你想在分配之前检查属性是否存在(否则如果r发疯,那么你的player对象就会疯狂):

if(player.hasOwnProperty('voor_' + r)) {
  //Do stuff
}

Object.prototype.hasOwnPropertyMDN link

答案 1 :(得分:1)

function valiVoor(player, r){
    return player['voor_'+r];
}

一个二传手:

function setValiVoor(player, r, value){
    player['voor_'+r] = value;
}

答案 2 :(得分:0)

您也可以使用方括号访问对象属性,就像数组一样。

function getValiVoor(player, r){
    return player['voor_' + r];
}

如果要分配值,可以将值传递给函数:

function setValiVoor(player, r, val){
    player['voor_' + r] = val;
}