我有多个包含数百个数据的excel列。我想在这些列中找到相同的单词。例如, 第一栏:狗鼠捕捉一些猫叉苹果, 第二栏:叉狗灯歌苹果一些赞美诗蜡烛等,输出将是“狗,一些,叉子,苹果”。
我在Intersecting texts to find common words这个帖子中找到了这段代码。它适用于字符串,但不适用于textareas和输入。我试图修改它以解决我的问题但是,我失败了。
提前致谢。
var t1 = document.getElementById('first').value;
var t2 = document.getElementById('second').value;
function intersect() {
var set = {};
[].forEach.call(arguments, function(a,i){
var tokens = a.match(/\w+/g);
if (!i) {
tokens.forEach(function(t){ set[t]=1 });
} else {
for (var k in set){
if (tokens.indexOf(k)<0) delete set[k];
}
}
});
return Object.keys(set);
}
console.log(intersect(t1, t2));
<textarea id="first"></textarea>
<textarea id="second"></textarea>
答案 0 :(得分:0)
function intersect() {
let arr1 = t1.split("/*you can split by comma or whitespace*/");
let arr2 = t2.split("");
let result = [];
for (let i = 0; i < arr1.length; i +=1) {
for (let i1 = 0; i1 < arr2.length; i1 +=1 {
if (arr1[i] === arr2[i1]) {
result.push(arr[i]);
break;
}
}
}
return result;
}
试试这个。
答案 1 :(得分:0)
这是我的尝试:
function update(){
var result = compare(
document.getElementById("first").value,
document.getElementById("second").value,
" " //Space
);
console.log(result);
}
function compare(haystack, needles, separator) {
var result = new Array();
var HaystackArray = haystack.split(separator);
var NeedlesArray = needles.split(separator);
HaystackArray.forEach(function(needle) {
if(!NeedlesArray.includes(needle))
return;
//Remove that if you want to allow words to be in the result multiple times
if(result.includes(needle))
return;
result.push(needle);
});
return result;
}
<textarea id="first" onChange='update()'>Lorem ipsum dolor sit amet, consectetur adipiscing elit</textarea>
<textarea id="second" onChange='update()'>Lorem ipsum in hac habitasse platea dictumst consectetur dolor</textarea>