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:自己钻进了模糊查询的死胡同,有点绕不出来。。。


尚方宝剑之说
浏览 997回答 1
1回答

哔哔one

var jsons = [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {"id":"123456","info":"这是普通用户"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {"id":"876543","info":"这是尊享用户"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {"id":"87654321","info":"这是高级用户"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {"id":"87654311","info":"这是尊享用户"},&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;]&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; function f(jsons,num) {&nbsp; &nbsp; &nbsp; &nbsp; var num8 = num.substr(0,8);&nbsp; &nbsp; &nbsp; &nbsp; var num6 = num.substr(0,6);&nbsp; &nbsp; &nbsp; &nbsp; var result6 = '';&nbsp; &nbsp; &nbsp; &nbsp; var result8 = '';&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(var i = 0,len = jsons.length; i < len;i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var id = jsons[i].id;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(id == num8) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result8 = jsons[i];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(id == num6) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result6 = jsons[i];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return result8 ? result8 : result6;&nbsp;&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript