2017-05-18 11 views
0

私はコードの一部を次のようしている:私が最初に印刷しようとするとのjavascript:matchメソッドを返すオブジェクトの代わりに、配列

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の最初の2つの要素を使用するには、しかし、それは私にエラーを与えます配列の要素:このエラーで

console.log(filenameTest_components[1]) 

TypeError: Cannot read property '1' of null 

matchメソッドがarrayまたはobjectを返す必要があります場合、私は混乱していますか?

SO出力電流Iのみ入力文字列と一致出力を印刷する場合は、次のように次のようになります。

task-routelearning_events.json 
object [ '-routelearning_', 
    index: 4, 
    input: 'task-routelearning_events.json' ] 

編集:

大きな画像に次を与えることは

をGitHubにするためのリンクですhttps://github.com/suyashdb/bids-validator/blob/illegal_Character_underscoreInTaskname/validators/bids.js#L128

+0

ヌル – JellyKid

+0

'null'なのでは' object'そのない混乱することができるタイプのオブジェクトです。私は何を言っているのか理解できません – Chay22

+0

これは混乱しています。配列は、0から始まるキーを持つキー/値オブジェクトです。console.log(filenameTest_components ['index'])の場合は、4が出力されます。技術的には、出力は[0: '-routelearning_'、...]となります。詳細についてはhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/execをご覧ください – JellyKid

答えて

0

Javascript match関数は、マッチをArrayオブジェクトとして返します。

あなたはmatch関数から返された値を使用したい場合は、あなたがアレイ

var result = filenameTest_components.map(el => el); 
console.log(result[0]); 
+0

' el => el'を意味する ? – learnningprogramming

+0

申し訳ありませんが、私の間違いです。私は注意深くチェックしなかった。 私はそれがあなたの正規表現によって引き起こされたと思います。 'el => el'は' filenameTest_components'配列の各要素を表します。 これはES6の矢印機能です。詳細は以下のリンクを確認してください。 http://es6-features.org/#ExpressionBodies –

0

String.prototype.match()に変換する必要があり、常に一致する(そうでないnull)があるとき配列を返しますが、あなたが知っているかもしれないとして、 、配列はJavaScriptのオブジェクトです。アレイ上でtypeofを使用すると、objecttypeof nullobjectを返します)が表示されます。配列を持っているかどうかを判断する最も良い方法はArray.isArray()です。また

var str = 'foo bar baz foo', 
 
    res = str.match(/foo/g); 
 

 
console.log(res); // ["foo", "foo"] 
 
console.log(typeof res); // object 
 
console.log(Array.isArray(res)); // true

+0

どのようにすれば、配列の出力の最初の要素を一致方法 – learnningprogramming

+0

から得ることができるかは、次のようなものです: 'arr [0]'。配列の最初のインデックスが1ではなく0であることを忘れないでください。 – Badacadabra

+0

これは問題です。 arr [0]はエラーだけを返します。 – learnningprogramming

関連する問題