JSFiddle - React, Tailwind, and code Playground
HTML
<ul>
<li><a href="https://teratail.com/questions/47779">JavaScript - eval(47779)|teratail</a></li>
</ul>
JavaScript
'use strict';
const tweetList = [
'起きた',
'はいふりがすき',
'そういえばteratailでJSに関する質問ないか見てこよう',
'JavaScript難しい…。',
'vimとかemacsとかで争うのはやめろよ。最強は秀丸って結論出てるんだしさ。',
'Hello, JavaScript!',
'Hello, World!'
];
const wordList = ['JS', 'JavaScript', '\\'];
function arrayFilterByWhileWhile (tweets, words) {
var results = [],
i = 0,
l = tweets.length,
m = words.length,
j, tweet;
while (i < l) {
tweet = tweets[i++];
j = 0;
while (j < m) {
if (tweet.includes(words[j++])) {
results.push(tweet);
break;
}
}
}
return results;
}
function arrayFilterByWhileRegExp (tweets, words) {
var results = [],
i = 0,
l = words.length,
reg = [],
tweet;
while (i < l) {
reg.push(words[i++].replace(/(?=[$()*+\-.?\[\]^{|}\\])/g, '\\'))
}
i = 0;
l = tweets.length;
reg = new RegExp(reg.join('|'));
while (i < l) {
tweet = tweets[i++];
if (reg.test(tweet)) {
results.push(tweet);
}
}
return results;
}
var arrayFilterByFilter = (function (RegExp) {
function filter (value) {
return this.test(value);
}
return function arrayFilterByFilter (tweets, words) {
var i = 0, l = words.length, reg = [];
while (i < l) {
reg.push(words[i++].replace(/(?=[$()*+\-.?\[\]^{|}\\])/g, '\\'))
}
return tweets.filter(filter, new RegExp(reg.join('|')));
}
}(RegExp));
var arrayFilterByFunctionMap = (function (Function) {
function map (value) {
return 'tweet.includes("' + value.replace(/(?=["\\])/g, '\\') + '")';
}
return function arrayFilterByFunctionMap (tweets, words) {
var expression = words.map(map).join('||');
return Function('tweets',
`var i = 0, l = tweets.length, results = [], tweet;
while (i < l) {
tweet = tweets[i++];
if (${expression}) {
results.push(tweet);
}
}
return results;
`)(tweets);
};
}(Function));
var arrayFilterByFunctionWhile =...