我需要将match
的结果返回给filter
。我尝试了 forEach,但由于某种我似乎无法解决的原因,它导致我的脚本崩溃而没有错误。如果在 filter
中记录 element.match(/regex/)[1]
它会记录我想要的输出。然而,当我返回它时,它返回整个字符串(不仅仅是匹配项)。代码如下:
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);
如何返回第一个控制台记录器中的输出?
最佳答案
您应该使用“ map ”,而不是“过滤器”。
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.map(function(element) {
if (element != '#' && element != null) {
return element.match(/eng_tid":"(\d*)",/)[1];
} else {
return false;
}
});
console.log(resultAr);
关于Javascript - 如何让filter()返回匹配结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534470/