Maison > Questions et réponses > le corps du texte
Je souhaite implémenter une fonction, c'est-à-dire lorsque l'utilisateur pré-saisit une valeur dans les input
输入10位数字后点击查询按钮
后,去匹配json
data et renvoie différents résultats de requête en fonction de différentes informations.
Cependant, la valeur de saisie anticipée de json
n'est que de 8 ou 6 chiffres (correspondant aux 8 ou 6 premiers chiffres d'un numéro à 10 chiffres, la priorité de correspondance est de 8 chiffres en premier et 6 chiffres plus tard). S'il vous plaît dites-moi comment porter ce jugement de requête ? Merci!
json
Format :
{"id":"123456","info":"这是普通用户"},
{"id":"87654321","info":"这是高级用户"}
{"id":"876543","info":"这是尊享用户"}
Par exemple, la saisie utilisateur est 1234567890
1234567890
,json
数据中的预输入值有123456
,则匹配这个预输入值的信息,如果用户输入的是0987654321
,json
数据中的预输入值有098765
和09876543
两个时,则匹配09876543
, et la valeur de pré-saisie dans les data est
123456
, puis les informations qui correspondent à cette pré-saisie valeur, si la saisie utilisateur est PS:
0987654321
098765
🎜 et 🎜09876543
🎜, cela correspond à 🎜 Informations sur la valeur pré-saisie de 09876543
🎜. 🎜
🎜🎜Je suis tombé dans une impasse de requêtes floues et je n’arrive pas à m’en sortir. . . 🎜为情所困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;
}
怪我咯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))
C'est très ennuyeux. Vous devez parcourir toutes les données, alors laissez l'arrière-plan le faire
.过去多啦不再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{
//无匹配
}
}