参考如下代码: function duplicateWord(a, b) { if (!a || !b) return; var dict = {}; var result = []; a.replace(/\w+/g, function() { // 获得第一组单词 dict[arguments[0]] = true;; }); b.replace(/\w+/g, function() { // 判断单词是否重复,如果重复添加到结果中 if (dict[arguments[0]]) result.push(arguments[0]); }); return result; }var words = duplicateWord("This is a dog.", "this is a cat."); alert(words);
给String添加一个函数<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <script> String.prototype.sameElements = function(str){ var arr = new Array(); str = str.replace(".",""); var temp = str.split(" "); for(var i=0;i<temp.length;i++){ if(this.indexOf(temp[i])!=-1){ arr.push(temp[i]); } } return arr; } var str1 = "This is a dog." var str2 = "this is a cat." alert(str1.sameElements(str2)); </script> </HEAD> <BODY>
</BODY> </HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <script> Array.prototype.isHave = function(str){ //判断str2是否在数组中 for(var i=0;i<this.length;i++){ if(this[i]==str){ return true ; } } return false; } function compareStr(str1,str2){ var arr = new Array(); var reg = /\s+/g; str1 = str1.replace(".",""); str2 = str2.replace(".",""); str1 = str1.split(reg); str2 = str2.split(reg); for(var i=0;i<str2.length;i++){ if(str1.isHave(str2[i]) && !arr.isHave(str2[i]) ){ arr.push(str2[i]); } } return arr ; } var str1 = "This is a dog." var str2 = "this is a is cat." alert(compareStr(str1,str2)); </script> </HEAD> <BODY>
</BODY> </HTML>这样可能比较好一点,去除重复的单词
谢谢楼上贴出代码的人,谢谢不过,我们的JAVASCRIPT目前刚开始学,比较皮毛,我看不懂 T T 这两个都是什么意思呢? 刚刚查了一下,好像跟什么正则表达有关? 看着眼晕Array.prototype.isHave reg = /\s+/g
Array.prototype.isHave = function 这样是给Array对象添加一个方法 var reg = /\s+/g;这样是定义一个正则表达式 去http://www.w3school.com.cn上面看看基础教程吧
function duplicateWord(a, b) {
if (!a || !b) return;
var dict = {};
var result = [];
a.replace(/\w+/g, function() { // 获得第一组单词
dict[arguments[0]] = true;;
});
b.replace(/\w+/g, function() { // 判断单词是否重复,如果重复添加到结果中
if (dict[arguments[0]])
result.push(arguments[0]);
});
return result;
}var words = duplicateWord("This is a dog.", "this is a cat.");
alert(words);
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
String.prototype.sameElements = function(str){
var arr = new Array();
str = str.replace(".","");
var temp = str.split(" ");
for(var i=0;i<temp.length;i++){
if(this.indexOf(temp[i])!=-1){
arr.push(temp[i]);
}
}
return arr;
}
var str1 = "This is a dog."
var str2 = "this is a cat."
alert(str1.sameElements(str2));
</script>
</HEAD> <BODY>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
Array.prototype.isHave = function(str){ //判断str2是否在数组中
for(var i=0;i<this.length;i++){
if(this[i]==str){
return true ;
}
}
return false;
} function compareStr(str1,str2){
var arr = new Array();
var reg = /\s+/g;
str1 = str1.replace(".","");
str2 = str2.replace(".","");
str1 = str1.split(reg);
str2 = str2.split(reg);
for(var i=0;i<str2.length;i++){
if(str1.isHave(str2[i]) && !arr.isHave(str2[i]) ){
arr.push(str2[i]);
}
}
return arr ;
}
var str1 = "This is a dog."
var str2 = "this is a is cat."
alert(compareStr(str1,str2));
</script>
</HEAD> <BODY>
</BODY>
</HTML>这样可能比较好一点,去除重复的单词
这两个都是什么意思呢?
刚刚查了一下,好像跟什么正则表达有关?
看着眼晕Array.prototype.isHave
reg = /\s+/g
var reg = /\s+/g;这样是定义一个正则表达式
去http://www.w3school.com.cn上面看看基础教程吧