我遇到一行代码
if(words[i].endsWith(oneD[x].ending))
作品,
var thing = "oneD";
if(words[i].endsWith([thing][x].ending))
没有按'吨。我希望他们都做同样的事情。
答案 0 :(得分:2)
可以通过两种等效方式访问对象的属性:
obj.prop
obj['prop']
您的示例不起作用,因为您没有对象的属性,而是变量。
您的问题的解决方案可能来自以下事实:在全局范围中声明的变量也显示为全局对象的属性(在浏览器的情况下为window
):
var ans = 42;
console.log(window.ans); // 42
因此,如果oneD是全局范围内的变量,则以下两行是等效的:
if(words[i].endsWith(oneD[x].ending))
if(words[i].endsWith(window['oneD'][x].ending))
显然,不是文字字符串'oneD',而是可以放置一个变量来计算该字符串(在您的示例中为thing
)。