Javascript 返回两个字符串中匹配字母的Js函数
函数,该函数返回用户通过提交的两个字符串中的第一个字母 输入类型为文本,字符串用逗号分隔。例如:aaaaa,bbb a-->匹配的字母为“a”,因为在两个字符串中都存在 对不起,有些意大利名字,但我用意大利语编码 我不确定如何继续,我有一个for来遍历两个字符串,但我不确定它是否正确Javascript 返回两个字符串中匹配字母的Js函数,javascript,Javascript,函数,该函数返回用户通过提交的两个字符串中的第一个字母 输入类型为文本,字符串用逗号分隔。例如:aaaaa,bbb a-->匹配的字母为“a”,因为在两个字符串中都存在 对不起,有些意大利名字,但我用意大利语编码 我不确定如何继续,我有一个for来遍历两个字符串,但我不确定它是否正确 函数Ripetizione(){ var rip=document.getElementById(“字符串”).value; 如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在 警惕(“非塞纳
函数Ripetizione(){
var rip=document.getElementById(“字符串”).value;
如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
var stringa1=rip.substr(0,rip.indexOf(“,”);//这是逗号前的string1
var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));//这是逗号后的第二个字符串
对于(i=0;i您不需要循环第二个字符串。。只需检查元素的索引=>0,同时循环第一个字符串部分的每个元素。并返回值。函数Ripetizione(){
function Ripetizione() {
var rip=document.getElementById("string").value;
if (rip.indexOf(",")==-1){
alert("Non c'è nessuna virgola");
return;
}
var stringa1=rip.substr(0,rip.indexOf(","));
var stringa2=rip.substr(rip.indexOf(",")+1,rip.length-(stringa1.length+1));
return search(stringa1, stringa2);
}
function search(a, b){
for(var i=0; i<a.length;i++){
for(var j=0;j<b.length;j++){
if(a[i] == b[j]){
return a[i];
}
}
}
}
var rip=document.getElementById(“字符串”).value;
如果(rip.indexOf(“,”)==-1){
警惕(“非塞纳苏纳维戈拉”);
返回;
}
var stringa1=rip.substr(0,rip.indexOf(“,”);
var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));
返回搜索(stringa1、stringa2);
}
功能搜索(a、b){
对于(var i=0;i我们可以使用并使用检查匹配字符的存在
其思想是使用reduce
函数将字符串转换为字符串数组,然后对匹配的字符进行匹配和累加
//将匹配的字符作为数组返回
函数Ripetizione(rip){
//让rip=document.getElementById(“字符串”).value;
设strs=rip.split(“,”);
如果(strs.length!==2){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
//将字符串转换为数组以使用reduce
设strOne=Array.from(strs[0]),strTwo=strs[1];
返回行程减少((acc,alpha)=>{
return!acc.includes(alpha)和&strTwo.includes(alpha)【alpha,…acc】:acc;
},[]).slice(0,1).toString();
}
控制台日志(Ripetizione(“aaaaaa b,bbbbb a”);
控制台日志(Ripetizione(“aaaaaa,bbbbb a”);
控制台日志(Ripetizione(“acccaaa,bbb a”);
控制台日志(Ripetizione(“acccaaa,bbcba”);
log(Ripetizione(“dddddd,bbbbb a”);//返回空字符串
console.log(Ripetizione(“ab,ba”);
函数Ripetizione(){
var rip=document.getElementById(“字符串”).value;
如果(rip.indexOf(“,”)=-1){//检查逗号是否不存在
警惕(“非塞纳苏纳维戈拉”);
返回;
}
var stringa1=rip.substr(0,rip.indexOf(“,”);//这是逗号前的string1
var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));//这是逗号后的第二个字符串
如果(stringa1.length以下演示将更改事件绑定到输入。当用户在输入中输入文本,然后在输入之外单击时,将调用该函数。该函数使用split()
和filter()
并在输出中显示结果。如果没有匹配项,该函数还将删除所有空格和报告
演示
详细信息将在演示中进行注释
var str=document.getElementById(“字符串”);
//这是一个事件处理程序
函数ripZ(e){
var result=document.getElementById('result');
var rip=该值;
如果(rip.indexOf(“,”)=-1){
result.value=“用逗号分隔两个字符串(无空格)。”;
返回;
}
//如果有空格,请将其删除
var rip=rip.replace(/\s/g');
//在逗号处拆分字符串,形成两个字符串的数组
var数组=rip.split(',');
/*
把每一根绳子在每个字母处分开。
现在有两个字母数组
*/
var first=数组[0]。拆分(“”);
var second=数组[1]。拆分(“”);
/*
使用两个for…of循环遍历两个数组
*/
var match=first.filter(函数(f,i){
返回第二个。indexOf(f)!=-1;
});
//显示结果
如果(匹配){
result.innerHTML=`
字母“${match[0]}”是两个字符串之间的第一个匹配项;
}否则{
result.value=“没有匹配项。”
}
返回;
}
/*
这是注册到输入的OneEvent属性
如果用户在输入中键入,则在输入之外单击
调用事件处理程序ripZ()。
*/
str.onchange=ripZ;
GO
总是喜欢函数式编程而不是命令式编程。使用
函数getCommonLetter(str){
常量[stringA,stringB]=str.split(',');
返回Array.from(stringB.find)(val=>stringA.includes(val));
}
log(getCommonLetter('ab,ba'))
log(getCommonLetter('ads,bsd'))
console.log(getCommonLetter('aaa,bbc'))
如果输入是“ab,ba”,您会说它应该返回b,所以代码必须在我的打开中位于上方:
function Ripetizione() {
// var rip=document.getElementById("string").value;
// if (rip.indexOf(",")==-1){
// alert("Non c'è nessuna virgola");
// return;
// }
// var stringa1=rip.substr(0,rip.indexOf(","));
// var stringa2=rip.substr(rip.indexOf(",")+1,rip.length-(stringa1.length+1));
var stringa1="ab";
var stringa2="ba";
for(var i=0; i<stringa2.length;i++){
for(var j=0;j<stringa1.length;j++){
if(stringa2.charAt(i) === stringa1.charAt(j)){
console.log(stringa2.charAt(i));
return;
}
}
}
函数Ripetizione(){
//var rip=document.getElementById(“字符串”).value;
//如果(rip.indexOf(“,”)==-1){
//警惕(“非塞纳苏纳维戈拉”);
//返回;
// }
//var stringa1=rip.substr(0,rip.indexOf(“,”);
//var stringa2=rip.substr(rip.indexOf(“,”)+1,rip.length-(stringa1.length+1));
var stringa1=“ab”;
var stringa2=“ba”;
对于(var i=0;iIf)而言,如果输入为“ab,ba”,那么输出应该是什么?“a”或“b”?因为第二个字符串中的“b”出现在第一个字符串中position@Rogi在我的回答中,当没有匹配时,我返回一个空白字符串。是的,它工作正常,很高兴看到我的想法没有错,毕竟谢谢你的帮助