拆分数组 [0] 元素并过滤,然后放入 new table

Split array [0] element and filter, then put into new table

我尝试将句子拆分为单个单词,然后对其进行过滤,删除不需要的单词。之后将新内容放入新的 table 中,例如图片和 jsfiddle 演示。

问题是:

  1. 我不能拆分这个(我试过 .split(" "); )
  2. 我不知道如何让它适用于每个数组(我试过“.map”)

请观看演示: https://jsfiddle.net/Ashayas/xetqznLb/

屏幕:(不要害怕颜色,它们显示了我想要实现的目标) IMAGE - CONSOLE LOG

代码:

// I try to go from arr to tab
arr = [];
arr[0] = ["1. XXX Be yourself; XXX everyone else YYY is XXX already taken."];
arr[1] = ["2. Dont cry ZZZ ZZZ because its over, smile ZZZ because it happened 50.50 30:30"];

tab = [];
tab[0] = ["1.", "Be", "yourself;", "everyone", "else", "is", "already", "taken."];
tab[1] = ["2.", "Dont", "cry", "because", "its", "over", "smile", "because", "it", "happened", "50.50", "30:30"];

var unwanted_content = ["XXX", "YYY", "ZZZ"];

我不确定您期望的答案是什么。意思是,您希望在 tab 中存储什么 您可以使用 join, includes and split 方法的组合。你可以试试这样的

var splitCharacter = " ";
var originalContent = [
  ["1. XXX Be yourself; XXX everyone else YYY is XXX already taken.", "XXX another one"],
  ["2. Dont cry ZZZ ZZZ because its over, smile ZZZ because it happened 50.50 30:30"]
];
var unwantedContent = ["XXX", "YYY", "ZZZ"];

var tab = [];
for (var i = 0; i < originalContent.length; i++) {
  console.log("*********************************");
  tab[i] = originalContent[i].join(" ").split(splitCharacter);
  tab[i] = tab[i].filter(x => !unwantedContent.includes(x));
  console.log("Original and filtered contents: ");
  console.log(originalContent[i]);
  console.log(tab[i])
  console.log("_________________________________");
}

假设你的数组是这样设置的,你可以使用正则表达式删除不需要的内容

var unwanted_content = [/XXX/g, /YYY/g, /ZZZ/g];

var tab = [];
arr.forEach(function(array) {
  var string = array[0];
  unwanted_content.forEach(function(unwanted) {
    string = string.replace(unwanted, '');
  })
  string = string.replace(/ +/g, ' ');
  tab.push(string.split(' '));
})

replace(/ +/g, ' ') 是删除重复的白色 space,因此您的数组保持您想要的方式