js里如何动态的使用变量?

小七哥
  • 159

我的代码如下:

var position = getCookie('position');
if (getCookie('sid') == data.data.player3[0].sid){
    alert(1);
}

上面代码是没有问题的,弹出内容为 1 的警告框,但是我的需求是想将那个 3 用 position 变量替换,我改成下面这样的:

var position = getCookie('position');
if (getCookie('sid') == data.data.player + position[0].sid){
    alert(1);
}

代码就一直报下面这个错误,说明下那个 position 的值确实是等于 3 的。

Uncaught TypeError: Cannot read property 'sid' of undefined

所以请大神指点一下,我这里该怎么写,谢谢。

回复
阅读 292
1 个回答

JS 里面点号可以做下标,方括号也是。
只不过方括号里面是表达式,而点号后面就是单纯的键名,键名是写死的代码,不能参与任何运算。
并且点号的优先级比所有运算符都高,等于你写的是:

(data.data.player) + (position[0].sid)

正确的写法是用方括号,在里面写表达式计算出所需键名字符串:

var position = getCookie('position');
if (getCookie('sid') == data.data[`player${position}`][0].sid){
    alert(1);
}
你知道吗?

宣传栏