0
match
の結果をfilter
に返す必要があります。私はforEach
を試しましたが、何らかの理由でスクリプトをクラッシュさせてしまいました。私は解決できないようです。 filter
のログにelement.match(/regex/)[1]
が記録されていれば、必要な出力が記録されます。しかし、私がそれを返すと、文字列全体が返されます(マッチだけでなく)。コードは次のとおりです。Javascript - 一致結果を返すfilter()の取得方法
let myAr = ['{"engagement":{"eng_type":"1","eng_src":"2","eng_tid":"100000077777226","eng_data":[]},"coeff2_registry_key":"0406","coeff2_info":"AauUajLpeWuhLBG3jk4ypnhABBcEcbN4M8Z2F6J_CQaQXEhPwL-3j1_dX5vhAleK3K7rjlzqJwnG4xGGaGdFk7Eb","coeff2_action":"1","coeff2_pv_signature":"1509941759"}',
'{"engagement":{"eng_type":"1","eng_src":"2","eng_tid":"711427743","eng_data":[]},"coeff2_registry_key":"0406","coeff2_info":"AasHfdsp_Gkdbs3_B4K-_5cN8Y0ZqJPVdm4MYXBzUoXs5QyNoPir8LEYK_RsMpQMxwI","coeff2_action":"1","coeff2_pv_signature":"1509941759"}',
'{"engagement":{"eng_type":"1","eng_src":"2","eng_tid":"500890765","eng_data":[]},"coeff2_registry_key":"0406","coeff2_info":"AasBuRKr2vnMecj6ozdELAcZnUPL1FD3ojLSVrYrTckKy_pB2HekM693oJwKD0yH41Y","coeff2_action":"1","coeff2_pv_signature":"1509941759"}',
];
let resultAr = myAr.filter(function(element) {
if (element != '#' && element != null) {
console.log(element.match(/eng_tid":"(\d*)",/)[1]); // this logs what I want
return element.match(/eng_tid":"(\d*)",/)[1]; // this doesn't return what I want
} else {
return false;
}
});
console.log(resultAr);
最初のコンソールロガーの出力を返すにはどうすればよいですか?
あなたは 'マップ'を考えていますか? 'filter'は_modified_要素の配列を返しません。名前が暗示するように、_filters_それらの要素だけをフィルタリングします。また、何か理由はありますか?JSONを解析して正規表現に依存するだけではありませんか? – Xufox
それもあります。 JSONはHTMLのタグのデータ属性から来ているので、私の脳はJSONモードではあまりありませんでした。 – xendi