Javascript 如何按整型列对json对象进行排序,如;3",&引用;“2”&引用;5“;

Javascript 如何按整型列对json对象进行排序,如;3",&引用;“2”&引用;5“;,javascript,json,sorting,vue.js,lodash,Javascript,Json,Sorting,Vue.js,Lodash,我想对包含数字的列的json对象进行排序。但它的排序不正确,因为列是字符串类型。如何按数字顺序对字符串进行排序 var myArray=[{ 姓名:'大卫', 总数:“6” }, { 姓名:'约翰', 总数:“2” }, { 名字:'乔', 总数:“8” }, { 姓名:“安娜”, 总数:“14” }]; var上升; var递减; 函数test1(){ 升序=u.sortBy(myArray,'total'); log(JSON.stringify(升序)); } 函数test2(){ 下降

我想对包含数字的列的json对象进行排序。但它的排序不正确,因为列是字符串类型。如何按数字顺序对字符串进行排序

var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
var上升;
var递减;
函数test1(){
升序=u.sortBy(myArray,'total');
log(JSON.stringify(升序));
}
函数test2(){
下降=上升。反向();
log(JSON.stringify(降序));
}

提升
降序
与回调一起使用,并将
总数
转换为一个数字:

var myArray=[{“name”:“David”,“total”:“6”},{“name”:“John”,“total”:“2”},{“name”:“Joe”,“total”:“8”},{“name”:“Ana”,“total”:“14”});
var上升;
var递减;
函数test1(){
升序=u.sortBy(myArray,v=>Number(v.total));
log(JSON.stringify(升序));
}
函数test2(){
下降=上升。反向();
log(JSON.stringify(降序));
}

提升
降序
与回调一起使用,并将
总数
转换为一个数字:

var myArray=[{“name”:“David”,“total”:“6”},{“name”:“John”,“total”:“2”},{“name”:“Joe”,“total”:“8”},{“name”:“Ana”,“total”:“14”});
var上升;
var递减;
函数test1(){
升序=u.sortBy(myArray,v=>Number(v.total));
log(JSON.stringify(升序));
}
函数test2(){
下降=上升。反向();
log(JSON.stringify(降序));
}

提升

降序
您可以这样做

在这里的
sort
中,为了进行比较,我们必须将字符串更改为数字

var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
var上升;
var递减;
函数test1(){
升序=myArray.sort((a,b)=>Number(a.total)-Number(b.total));
log(JSON.stringify(升序));
}
函数test2(){
下降=上升。反向();
log(JSON.stringify(降序));
}

提升

降序
您可以这样做

在这里的
sort
中,为了进行比较,我们必须将字符串更改为数字

var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
var上升;
var递减;
函数test1(){
升序=myArray.sort((a,b)=>Number(a.total)-Number(b.total));
log(JSON.stringify(升序));
}
函数test2(){
下降=上升。反向();
log(JSON.stringify(降序));
}

提升

降序
使用map创建一个新数组,其中
total的值将是一个数字。然后使用排序函数

下面的函数按升序对数组进行排序

var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
让sortedOrder=myArray.map((项目)=>{
返回{
名称:item.name,
总计:parseInt(item.total,10)
}
}).排序((a,b)=>{
返回a.total-b.total;
})

console.log(sortedOrder)
使用map创建一个新数组,其中
total
的值将是一个数字。然后使用排序函数

下面的函数按升序对数组进行排序

var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
让sortedOrder=myArray.map((项目)=>{
返回{
名称:item.name,
总计:parseInt(item.total,10)
}
}).排序((a,b)=>{
返回a.total-b.total;
})
控制台日志(分拣机)
var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
var上升;
var递减;
/**
*上升的
*调用数组对象的排序函数。
*-处理每个对象的“总计”属性。
*--将每个字符串数字解析为整数进行比较。
*/
函数test1(){
ascending=myArray.sort(函数(a,b){return parseInt(a['total'])>parseInt(b['total']);});
log(JSON.stringify(升序));
}
/**
*下降的
*调用数组对象的排序函数。
*-处理每个对象的“总计”属性。
*--将每个字符串数字解析为整数进行比较。
*/
函数test2(){
descending=myArray.sort(函数(a,b){return parseInt(a['total'])
升序
降序
var myArray=[{
姓名:'大卫',
总数:“6”
}, {
姓名:'约翰',
总数:“2”
}, {
名字:'乔',
总数:“8”
}, {
姓名:“安娜”,
总数:“14”
}];
var上升;
var递减;
/**
*上升的
*调用数组对象的排序函数。
*-处理每个对象的“总计”属性。
*--将每个字符串数字解析为整数进行比较。
*/
函数test1(){
ascending=myArray.sort(函数(a,b){return parseInt(a['total'])>parseInt(b['total']);});
log(JSON.stringify(升序));
}
/**
*下降的
*调用数组对象的排序函数。
*-处理每个对象的“总计”属性。
*--将每个字符串数字解析为整数进行比较。
*/
函数test2(){
descending=myArray.sort(函数(a,b){return parseInt(a['total'])
升序

降序
不需要loadlash,只需使用
.sort()
即可。看看这个片段

var myArray=[{
姓名:'大卫',
托塔
function getSortOrder(prop) {  
    return function(a, b) {  
        if (parseInt(a[prop]) > parseInt(b[prop])) {  
            return 1;  
        } else if (parseInt(a[prop]) < parseInt(b[prop])) {  
            return -1;  
        }  
        return 0;  
    } 
}
array.sort(getSortOrder("total"));