Разделите массив [0] на элемент и фильтр, затем поместите в новую таблицу - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь разбить предложение на отдельные слова, а затем отфильтровать его, удалив ненужные слова.После этого поместите новый контент в новую таблицу, как на картинке и в демоверсии jsfiddle.

Проблема в следующем:

  1. Я не могу разделить это (я пробовал .split ("");)
  2. Я понятия не имею, как заставить его работать для каждого массива (я попробовал ".map")

Пожалуйста, посмотрите демонстрацию: https://jsfiddle.net/Ashayas/xetqznLb/

Экран: (не пугайтесь цветов, они показывают, чего я хочу достичь) ИЗОБРАЖЕНИЕ - ЖУРНАЛ КОНСОЛИ

КОД:

// 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 голосов
/ 04 декабря 2018

Предполагая, что ваш массив установлен таким образом, вы можете использовать регулярное выражение для удаления нежелательного содержимого

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, ' ') - удалить дублированный пробел, поэтому ваш массив остается таким, как вы хотите

0 голосов
/ 04 декабря 2018

Я не уверен, каков ваш ожидаемый ответ.Это означает, что вы ожидаете сохранить во вкладке tab . Вы можете использовать комбинацию join , , включающую и 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("_________________________________");
}
...