分割数组[0]元素并过滤,然后放入新表

时间:2018-12-04 16:50:14

标签: javascript arrays object text input-filtering

我尝试将句子拆分为单个单词,然后对其进行过滤以删除不需要的单词。之后,将新内容放入图片和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"];

2 个答案:

答案 0 :(得分:0)

我不确定您的预期答案是什么。意思是,您希望在选项卡中存储什么?您可以结合使用joinincludessplit方法。您可以尝试这样的事情

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("_________________________________");
}

答案 1 :(得分:0)

假设您已设置好数组,则可以使用正则表达式删除不需要的内容

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, ' ')将删除重复的空格,因此您的数组将保持您想要的方式