suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – JS-Abfrage, ob die ersten 8 oder die ersten 6 Ziffern eines Satzes von 10 Ziffern übereinstimmen

Ich möchte eine Funktion implementieren, bei der der Benutzer einen Wert vorab in die input输入10位数字后点击查询按钮后,去匹配jsonDaten eingibt und unterschiedliche Abfrageergebnisse basierend auf unterschiedlichen Informationen zurückmeldet.

Der Input-Ahead-Wert von json beträgt jedoch nur 8 oder 6 Ziffern (entsprechend den ersten 8 oder ersten 6 Ziffern einer 10-stelligen Zahl, die Übereinstimmungspriorität beträgt 8 Ziffern zuerst und 6 Ziffern später). Bitte sagen Sie mir, wie ich diese Anfrage beurteilen soll. Danke!

jsonFormat:

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

Zum Beispiel ist die Benutzereingabe 12345678901234567890json数据中的预输入值有123456,则匹配这个预输入值的信息,如果用户输入的是0987654321json数据中的预输入值有09876509876543两个时,则匹配09876543 und der Voreingabewert in den Daten ist

123456

, dann die Informationen, die dieser Voreingabe entsprechen Wert, wenn die Benutzereingabe PS:0987654321

ist, 🎜Wenn die Voreingabewerte in den Daten 🎜098765🎜 und 🎜09876543🎜, es stimmt mit 🎜Informationen über den vorab eingegebenen Wert von 09876543🎜 überein. 🎜 🎜🎜Ich bin in eine Sackgasse der Fuzzy-Abfrage geraten und komme da nicht raus. . . 🎜
phpcn_u1582phpcn_u15822828 Tage vor667

Antworte allen(3)Ich werde antworten

  • 为情所困

    为情所困2017-05-19 10:47:33

    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; 
        }

    Antwort
    0
  • 怪我咯

    怪我咯2017-05-19 10:47:33

    var json = [{'id': '123456','info': '这是普通用户'},
      {'id': '87654321','info': '这是高级用户'},
      { 'id': '876543', 'info': '这是尊享用户' }]
    
    var value = '8765432151'
    function slice (value, wei) {
      var temp = [].slice.call(value, 0, wei)
      temp = temp.join('')
      return temp
    }
    
    function match (userid, data) {
      var id6 = slice(userid, 6)
      var id8 = slice(userid, 8)
      for (var i = 0; i < json.length; i++) {
          // console.log(json[i])    
          console.log(slice(json[i].id, 8),id8)
        if (slice(json[i].id, 8) == id8||slice(json[i].id, 6) == id6) {
          var info = json[i].info
          info = slice(json[i].id, 6) === id6 ? json[i].info : info
          return info;
        }
      }
      
    }
    
    console.log(match(value, json))

    很坑爹.要遍历所有数据,这种事还是让后台做吧.

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:47:33

    先处理一下json
    var jsonObj={};
    json.forEach((x)=>{jsonObj[x.id]=x});
    function checkFn(val){
         var val8=val.slice(0,8);
            var val6=val.slice(0,6)
            if(jsonObj[val8]){
               //匹配到8位
            }else if(jsonObj[val6]){
                //匹配到6位)
            }else{
                //无匹配
            }
    }
       

    Antwort
    0
  • StornierenAntwort