我在字符串上调用.string方法并将其设置为等于另一个变量。它返回一个带有[match value, index, and input]
的数组。
当我尝试引用数组中的第二个元素时,它会以未定义的形式返回。有人能告诉我为什么会这样吗?继承我的代码:
var str = "hello world"
var matchArray = str.match("ell");
=>matchArray = ["ell",index:1,input:"hello world"]
var index = matchArray[1];
console.log(index);
=>undefined
提前致谢。
答案 0 :(得分:1)
var str = "hello world"
var matchArray = str.match("ell");
matchArray
是一个Array
,但在javascript中我们知道我们可以在数组中设置属性以及它是一个对象。
在上面的例子中,matchArray
只有数组中的数学。但其他属性如index
和input
都在对象中。
如果你console.dir(matchArray)
,你也可以获得这些属性。
因此,要访问这些属性,请使用matchArray.index
或matchArray.input
答案 1 :(得分:0)
JavaScript是一种有趣的语言。虽然matchArray 对象确实是一个数组,但在JS中,您可以向任何对象添加新成员。因此,matchArray是一个长度为1的数组,但它也有成员索引和输入。试试这个:
x="test"
y="test"
if [[ "${x}" = "${y}" ]]; then
echo "Equals"
else
echo "No equals"
fi
我们可以从头开始定义类似的对象:
...
console.log(matchArray.index);
console.log(matchArray.input);