Array.prototype.someが便利
なにこれ
Array.forEach() で回していて break が無いよウエ〜ンみたいな時にだいたい使えるメソッド
some() メソッドは、配列の少なくとも 1 つの要素が、渡された関数によって実施されるテストに通るかどうかをテストします。
今回はArrayでRegexを持っていて、文字列がどれか1つにマッチした場合は抜ける、みたいなことをしたかった。
code:js
const regexArray = [
/イエッ俊龍/,
/アゲ上松/,
];
const tweetList = [
'翔だいすき',
'イエッ俊龍!!!!',
'K1-club',
];
const mutedList = [];
tweetList.forEach(tweet => {
regexArray.forEach(regex => {
if (regex.test(tweet)){
return;
}
});
// returnで抜けられず、イエッ俊龍が入ってしまう
mutedList.push(tweet);
});
こんなときに some() がべんり。
code: js
tweetList.forEach(tweet => {
const isYakkai = regexArray.some(regex => regex.test(tweet));
if (isYakkai === false) {
mutedList.push(tweet);
}
});
こんな感じにしておけばいい。