我已经下面的代码段:的javascript:匹配方法返回对象,而不是阵列
var completename = file.name;
var regex = '/-\w+_/';
var filenameTest_components = completename.match(/-\w+_/);
console.log(completename);
console.log(typeof filenameTest_components, filenameTest_components)
我打算使用,但是阵列filenameTest_components的前两个元素,它给我错误当我尝试首先打印该阵列的元件:
console.log(filenameTest_components[1])
TypeError: Cannot read property '1' of null
与此错误,如果匹配方法应该返回array
或object
我感到困惑?
SO电流输出,如果我只打印输入的字符串和匹配输出看起来如下:
task-routelearning_events.json
object [ '-routelearning_',
index: 4,
input: 'task-routelearning_events.json' ]
编辑:
为了给出一个较大的图片以下为GitHub的
另外null是类型的对象,这可能会造成混淆 – JellyKid
'null'的是'object',但它不是。我甚至不明白我在说什么 – Chay22
好,所以这也是令人困惑的。数组是键值从0开始的键/值对象。如果console.log(filenameTest_components ['index'])它应该输出4.技术上,输出可以说[0:'-routelearning_',...]。看看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec更多信息 – JellyKid