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

我的代码如下:

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

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

阅读 1.6k
1 个回答

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

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

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

var position = getCookie('position');
if (getCookie('sid') == data.data[`player${position}`][0].sid){
    alert(1);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题