从另一个数组/列表中删除一个数组Javascript

时间:2018-02-27 10:55:04

标签: javascript

快速提问。

让我说我有:

var specialthings = ['special1','special2','special3'];
var alotoftext = ['randomTextButHereIHavespecial1orspecial2orspecial3']

我的目标是从specialthings分隔alotoftext。因此结果将是new varalot of text(对我而言)等于:

var newvar or var alotoftext = ['randomTextButHereIHaveor']

基本上要移除special1 special2special3

如果案例是数字,我不想要像0-9这样的卸妆器,而是一个将一个字符串的值与另一个字符串分开的函数 - 就像这样:

var new = alotoftext - specialthings

一种方法。

2 个答案:

答案 0 :(得分:2)

您可以使用要移除的管道形成一个新的regex分隔所有单词,然后在阵列上使用.map来替换所有出现的内容。

var specialthings = ['special1','special2','special3'];
var alotoftext = ['randomTextButHereIHavespecial1orspecial2orspecial3']

var re = new RegExp(specialthings.join("|"),"g");

var newText =  alotoftext.map(el => el.replace(re, ""));

console.log(newText);

答案 1 :(得分:0)

使用mapRegExp

var output = alotoftext.map( s => s.replace( new RegExp( specialthings.join( "|" ), "g" ), "" ) )

<强>演示

&#13;
&#13;
var specialthings = ['special1','special2','special3'];
var alotoftext = ['randomTextButHereIHavespecial1orspecial2orspecial3'];
var output = alotoftext.map( s => s.replace( new RegExp( specialthings.join( "|" ), "g" ), "" ) );
console.log( output );
&#13;
&#13;
&#13;