Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
338 views
in Technique[技术] by (71.8m points)

JS查询一组10位数字的前8位或者前6位是否匹配

想实现一个功能,就是当用户在input输入10位数字后点击查询按钮后,去匹配json数据中的预输入值,并根据不同的信息反馈不同的查询结果。

然而json的预输入值只有8位或者6位(相对应10位数字的前8位或者前6位,匹配优先级是先8位后6位)。请教这个查询判断应该如何去做?谢谢!

json格式:

{"id":"123456","info":"这是普通用户"},
{"id":"87654321","info":"这是高级用户"}
{"id":"876543","info":"这是尊享用户"}

例如用户输入的是1234567890json数据中的预输入值有123456,则匹配这个预输入值的信息,如果用户输入的是0987654321json数据中的预输入值有09876509876543两个时,则匹配09876543的预输入值的信息。

PS:自己钻进了模糊查询的死胡同,有点绕不出来。。。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
var jsons = [
            {"id":"123456","info":"这是普通用户"},
            {"id":"876543","info":"这是尊享用户"},
            {"id":"87654321","info":"这是高级用户"},
            {"id":"87654311","info":"这是尊享用户"},
         ]    
    function f(jsons,num) {
        var num8 = num.substr(0,8);
        var num6 = num.substr(0,6);
        var result6 = '';
        var result8 = '';
    
          for(var i = 0,len = jsons.length; i < len;i++) {
              var id = jsons[i].id;
              if(id == num8) {
                  result8 = jsons[i];
                  break;
              }
    
              if(id == num6) {
                  result6 = jsons[i];
              }
           }
    
          return result8 ? result8 : result6; 
    }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
...