拆分数组 [0] 元素并过滤,然后放入 new table
Split array [0] element and filter, then put into new table
我尝试将句子拆分为单个单词,然后对其进行过滤,删除不需要的单词。之后将新内容放入新的 table 中,例如图片和 jsfiddle 演示。
问题是:
- 我不能拆分这个(我试过 .split(" "); )
- 我不知道如何让它适用于每个数组(我试过“.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,因此您的数组保持您想要的方式
我尝试将句子拆分为单个单词,然后对其进行过滤,删除不需要的单词。之后将新内容放入新的 table 中,例如图片和 jsfiddle 演示。
问题是:
- 我不能拆分这个(我试过 .split(" "); )
- 我不知道如何让它适用于每个数组(我试过“.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,因此您的数组保持您想要的方式