【问题标题】:When I enter 2 letters it searches about one one I would search about 2 letters at once to get value当我输入 2 个字母时,它会搜索大约一个字母,我会一次搜索大约 2 个字母以获得价值
【发布时间】:2017-12-05 17:45:15
【问题描述】:

enter image description here[在此处输入图片描述][2]当我输入 2 个字母时,它会搜索大约一个字母,我会一次搜索大约 2 个字母以获得价值

function d() {
  var  keyy = ["ا","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي"," ",","];
  var  code = ["ي1", "س1", "و1","ع1","ي2","س2","و2","ع2","ي3","س3","و3","ع3","ي4","س4","و4","ع4","ي5","س5","و5","ع5","ي6","س6","و6","ع6","ي7","س7","و7","ع7"," /",","];

  var msg=document.getElementById("pop").value;//if value = 1س it Gives unfounded???

  var finalcode="";

  for (var i = 0, len = msg.length; i < len; i++) 
  {
    var index=code.indexOf(msg[i]); 

    if(code[index]==undefined)
      finalcode+=msg[i];
    else
      finalcode+=keyy[index];
  }

  document.getElementById("p").innerHTML = finalcode;
}

【问题讨论】:

  • 您能否提供一个工作代码 sn-p 以及更多关于您的问题的解释?
  • 翻译wep页面的代码我会输入s1给我看一个
  • 我不明白
  • 如果我运行代码让我不喜欢

标签: javascript arrays search


【解决方案1】:

如果我明白发生了什么,你的问题是这一行:

var index = code.indexOf(msg[i]);

msg[i]msg.charAt(i) 相同,它只为您提供字符串中的单个字符。如果要检查每个索引的两个字符,则需要使用 String#substr(start, length)length 参数 2

var index = code.indexOf(msg.substr(i, 2));

其次,如果您打算一次检查 2 个字符,则应将 for 循环更改为如下所示:

for (var i = 0, len = msg.length; i < len; i += 2)

最后,一行行

if (code[index] == undefined)

确实有效,更可靠的检查是确保index 本身有效:

if (index < 0)

所有这些,你得到这个代码:

function d() {
  var  keyy = ["ا","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي"," ",","];
  var code = ["ي1", "س1", "و1","ع1","ي2","س2","و2","ع2","ي3","س3","و3","ع3","ي4","س4","و4","ع4","ي5","س5","و5","ع5","ي6","س6","و6","ع6","ي7","س7","و7","ع7"," /",","];

  var msg = document.getElementById("pop").value;
  var finalcode = "";

  for (var i = 0, len = msg.length; i < len; i += 2)
  {
    var index = code.indexOf(msg.substr(i, 2));

    if (index < 0)
      finalcode += msg.substr(i, 2);
    else
      finalcode += keyy[index];
  }

  document.getElementById("p").innerHTML = finalcode;
}

【讨论】:

  • 您能详细说明一下吗?说“不工作”是没有建设性的。我不知道问题是什么。你有错误吗?您能否提供此代码未生成的输入和预期输出?请edit您的问题提供这些详细信息并提供minimal reproducible example
  • 对不起,我应该输入例如“1X”给我“f”这个问题它让我没有根据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 2020-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
相关资源
最近更新 更多