Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序数组没有发生_Javascript - Fatal编程技术网

Javascript 排序数组没有发生

Javascript 排序数组没有发生,javascript,Javascript,我有一个这样的数组,我想忽略前两个对象,然后根据它的ISD代码按设计顺序排序 我的数据 "Output" : [{ Name:"Country" },{ Name :"CODE" }, { "Name" : "Alex", "Country" :"India", "CODE": "91" },{ "Name" : "David", "Coun

我有一个这样的数组,我想忽略前两个对象,然后根据它的ISD代码按设计顺序排序

我的数据

"Output" : 
    [{
        Name:"Country"
    },{
        Name :"CODE"
    },
    {
        "Name" : "Alex",
        "Country" :"India",
        "CODE": "91"

    },{
        "Name" : "David",
        "Country" : "USA",
        "CODE": "1"
    },{
        "Name" :"Ravi",
        "Country" : "NZ"
        "CODE": "61"
    },{
        "Name" :"Smith",
        "Country" : "AUS"
        "CODE": "64"
    }
    ]
我在这里尝试的是

var sortedData = sortByKey(output,"CODE")
function sortByKey(array, key) {
        return array.sort(function(a, b) {
            var x = a[key]; var y = b[key];
            return ((x < y) ? -1 : ((x > y) ? 1 : 0));
        });
    }
var sortedData=sortByKey(输出,“代码”)
函数sortByKey(数组、键){
返回array.sort(函数(a,b){
变量x=a[key];变量y=b[key];
回报率((xy)?1:0);
});
}

但它正在重新整理数据。有谁能帮我这里出了什么问题。

您可以选择
localeCompare
,并提供一些按正确顺序排序数值的选项

函数排序键(数组,键){
var-temp=数组切片(2);
温度排序(功能(a、b){
return(a[key]| |“”).localeCompare(b[key]| |“”,未定义,{numeric:true,敏感度:'base'});
});
返回数组.slice(0,2).concat(temp);
}
var数组=[{Name:“Country”},{Name:“CODE”},{Name:“Alex”,Country:“India”,CODE:“2”},{Name:“David”,Country:“USA”,CODE:“1”},{Name:“Ravi”,Country:“NZ”,CODE:“11”},{Name:“Smith”,Country:“AUS”,CODE:“24”};
log(sortByKey(数组,“代码”)

。作为控制台包装{max height:100%!important;top:0;}
您可以使用
localeCompare
以及一些用于按正确顺序排序数值的选项

函数排序键(数组,键){
var-temp=数组切片(2);
温度排序(功能(a、b){
return(a[key]| |“”).localeCompare(b[key]| |“”,未定义,{numeric:true,敏感度:'base'});
});
返回数组.slice(0,2).concat(temp);
}
var数组=[{Name:“Country”},{Name:“CODE”},{Name:“Alex”,Country:“India”,CODE:“2”},{Name:“David”,Country:“USA”,CODE:“1”},{Name:“Ravi”,Country:“NZ”,CODE:“11”},{Name:“Smith”,Country:“AUS”,CODE:“24”};
log(sortByKey(数组,“代码”)

.as控制台包装器{max height:100%!important;top:0;}
这应该可以用,希望有帮助

var数据=[
{“姓名”:“国家”},
{“名称”:“代码”},
{“姓名”:“亚历克斯”,“国家”:“印度”,“代码”:“91”},
{“姓名”:“大卫”,“国家”:“美国”,“代码”:“1”},
{“名称”:“拉维”,“国家”:“新西兰”,“代码”:“61”},
{“姓名”:“史密斯”,“国家”:“澳大利亚”,“代码”:“64”}
];
var sortedJSON=sortByKey(数据,“代码”);
函数sortByKey(数组、键){
var其他=[],结果;
结果=数组.过滤器(函数(o){
如果(!o[key])其他。按(o);
返回(o[键]);
}).排序(功能(a、b){
变量x=a[key],y=b[key];
回报率((xy)?1:0);
});
返回其他。concat(结果);
}

控制台日志(sortedJSON)这应该有效,希望有帮助

var数据=[
{“姓名”:“国家”},
{“名称”:“代码”},
{“姓名”:“亚历克斯”,“国家”:“印度”,“代码”:“91”},
{“姓名”:“大卫”,“国家”:“美国”,“代码”:“1”},
{“名称”:“拉维”,“国家”:“新西兰”,“代码”:“61”},
{“姓名”:“史密斯”,“国家”:“澳大利亚”,“代码”:“64”}
];
var sortedJSON=sortByKey(数据,“代码”);
函数sortByKey(数组、键){
var其他=[],结果;
结果=数组.过滤器(函数(o){
如果(!o[key])其他。按(o);
返回(o[键]);
}).排序(功能(a、b){
变量x=a[key],y=b[key];
回报率((xy)?1:0);
});
返回其他。concat(结果);
}

控制台日志(sortedJSON)这是完美的工作方式。如果要查找数字排序,请使用parseFloat 如果不需要带有
code
键的数据,请使用下面的方法

`

var JSON={
“产出”:[
{名称:“国家”},
{Name:“CODE”},
{“姓名”:“亚历克斯”,“国家”:“印度”,“代码”:“91”},
{“姓名”:“大卫”,“国家”:“美国”,“代码”:“1”},
{“名称”:“拉维”,“国家”:“新西兰”,“代码”:“61”},
{“姓名”:“史密斯”,“国家”:“澳大利亚”,“代码”:“64”}]
}
var sortedJSON=sortByKey(JSON.Output,“CODE”);
控制台日志(sortedJSON);
函数sortByKey(数组、键){
for(数组中的var obj){
if(数组[obj][key]==未定义){
删除数组[obj];
}
}
返回array.sort(函数(a,b){
如果(a[键]&&b[键]){
var x=parseInt(一个[key]);
var y=parseInt(b[key]);
回报率((xy)?1:0);
}
});

}
这是一个完美的工作方式。如果要查找数字排序,请使用parseFloat 如果不需要带有
code
键的数据,请使用下面的方法

`

var JSON={
“产出”:[
{名称:“国家”},
{Name:“CODE”},
{“姓名”:“亚历克斯”,“国家”:“印度”,“代码”:“91”},
{“姓名”:“大卫”,“国家”:“美国”,“代码”:“1”},
{“名称”:“拉维”,“国家”:“新西兰”,“代码”:“61”},
{“姓名”:“史密斯”,“国家”:“澳大利亚”,“代码”:“64”}]
}
var sortedJSON=sortByKey(JSON.Output,“CODE”);
控制台日志(sortedJSON);
函数sortByKey(数组、键){
for(数组中的var obj){
if(数组[obj][key]==未定义){
删除数组[obj];
}
}
返回array.sort(函数(a,b){
如果(a[键]&&b[键]){
var x=parseInt(一个[key]);
var y=parseInt(b[key]);
回报率((xy)?1:0);
}
});

}
您正在尝试按键“ISD”排序,但实际上在您的数据库中的对象中没有这样的键array@PatrickHund我更新了我的问题。
parseInt()
是比较代码时要查找的内容。您正在尝试按键“ISD”排序,但实际上,在您的数据库中的对象中没有这样的键array@PatrickHund我更新了我的问题。
parseInt()
是比较代码时要查找的。我更新了我的问题。我正在根据某个键进行排序。同时忽略json的前两个元素。在您的输出中,我看不到排序顺序。这只不过是在炫耀自己