Heim > Fragen und Antworten > Hauptteil
Ich möchte eine Funktion implementieren, bei der der Benutzer einen Wert vorab in die input
输入10位数字后点击查询按钮
后,去匹配json
Daten 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!
json
Format:
{"id":"123456","info":"这是普通用户"},
{"id":"87654321","info":"这是高级用户"}
{"id":"876543","info":"这是尊享用户"}
Zum Beispiel ist die Benutzereingabe 1234567890
1234567890
,json
数据中的预输入值有123456
,则匹配这个预输入值的信息,如果用户输入的是0987654321
,json
数据中的预输入值有098765
和09876543
两个时,则匹配09876543
und der Voreingabewert in den Daten ist
123456
, dann die Informationen, die dieser Voreingabe entsprechen Wert, wenn die Benutzereingabe PS:
0987654321
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. . . 🎜为情所困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))
很坑爹.要遍历所有数据,这种事还是让后台做吧.
过去多啦不再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{
//无匹配
}
}