Javascript 如何使用网页中的多个不同参数对JSON进行排序?

Javascript 如何使用网页中的多个不同参数对JSON进行排序?,javascript,json,sorting,Javascript,Json,Sorting,对于一所学校,我正在创建一个使用JSON和JavaScript将数据拉回到网页上的程序。我知道如何对数组进行排序,并提取匹配的值。假设我有这个JSON {"name":"Michael","age":30,"bday":"05/12/1982"} {"name":"Andy", "age":30,"bday":"02/21/1992"} {"name":"Justin", "age":19,"bday":"12/07/1972"} 我怎样才能有一个名字输入,年龄选择和生日输入,我可以排序的任何

对于一所学校,我正在创建一个使用JSON和JavaScript将数据拉回到网页上的程序。我知道如何对数组进行排序,并提取匹配的值。假设我有这个JSON

{"name":"Michael","age":30,"bday":"05/12/1982"}
{"name":"Andy", "age":30,"bday":"02/21/1992"}
{"name":"Justin", "age":19,"bday":"12/07/1972"}
我怎样才能有一个名字输入,年龄选择和生日输入,我可以排序的任何组合使用


比如说每个在1992年2月21日出生的30岁的人,或者每个30岁的人?我希望能够按数据输入的每个可能组合进行排序,而不希望只使用一堆if()语句。

您可以在HTML文件中输入过滤信息的内容

<input type="search" id="search" placeholder="search">

像这样的JS文件

$("#search").keyup(function () {
var searchField = $("#search").val();
// RegExp for case sensitive 
var myReg = new RegExp(searchField,"i");
$.getJSON('data.json',function (data) {
    var output ="<ul class='searchresults'>";
    $.each(data,function(key,val){
        if((val.name.search(myReg) != -1 ) || (val.info.search(myReg) != -1)){

            output +='<li>';
            output += "<h2>"+val.name+"</h2>";
            output += "<p>"+val.age+"</p>";
            output+='</li>';
        }
    });
    output +='</ul>';
    $("#update").html(output)
});
$(“#搜索”).keyup(函数(){
var searchField=$(“#搜索”).val();
//区分大小写的RegExp
var myReg=new RegExp(searchField,“i”);
$.getJSON('data.json',函数(数据){
var output=“
    ”; $。每个(数据、函数(键、值){ if((val.name.search(myReg)!=-1)| |(val.info.search(myReg)!=-1)){ 输出+='
  • '; 输出+=“”+val.name+“”; 输出+=“”+val.age+“

    ”; 输出+='
  • '; } }); 输出+='
'; $(“#更新”).html(输出) });

}))

该算法在
search
中查找每个属性,如果所有比较都为真,则将元素添加到结果集中

函数过滤器(数组、搜索){
返回数组.filter(函数(a){
返回Object.keys(搜索).every(函数(k){
返回(
a[k]==搜索[k]||

搜索类型[k]==='object'&&+search[k].min您想要排序还是筛选?您是将此数据显示到类似datatable的表中,还是需要此数据用于其他表中?对不起,我猜它将根据用户在网页UI上选择的选项进行筛选。我将只显示回网页,不带if-else条件如何筛选数据我不介意使用if-else,我是将有大约10个不同的输入,如果不是这样的话,这将是一吨