Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

根据javascript中的订单号将对象推送到数组中

根据javascript中的订单号将对象推送到数组中,javascript,arrays,Javascript,Arrays,在数组下面我有5个对象,具有随机顺序值,需要按照对象中的顺序键排列数组 我要按顺序将每个对象推送到另一个数组 var array = [ { "name": { "text": "javascript" }, "order": { "text": "4" } }, { "name": { "text": "an

在数组下面我有5个对象,具有随机顺序值,需要按照对象中的顺序键排列数组

我要按顺序将每个对象推送到另一个数组

  var array =  [
    {

        "name": {
            "text": "javascript"
        },
        "order": {
            "text": "4"
        }

    },
    {

        "name": {
            "text": "angualr js"
        },
        "order": {
            "text": "2"
        }
    },
 {

        "name": {
            "text": "Ios"
        },
        "order": {
            "text": "3"
        }
    },
 {

        "name": {
            "text": "PHP"
        },
        "order": {
            "text": "5"
        }
    }, {

        "name": {
            "text": "C"
        },
        "order": {
            "text": "5"
        }
    }
]
可以解释如何遵循逻辑。

只需对数组进行排序,它接受一个函数作为参数来比较两个项目

array.sort(function(a, b) {
  return parseInt(a.order.text, 10) - parseInt(b.order.text, 10);
});
只需对数组进行排序,它接受一个函数作为参数来比较两个项

array.sort(function(a, b) {
  return parseInt(a.order.text, 10) - parseInt(b.order.text, 10);
});

你能至少解释一下你的代码吗?我认为
return(+a.order.text)-(+b.order.text)
可能也不错。@JinyoungKim这是有效的,但不是一种“自然”的方式。人们希望parseInt返回整数,但不希望+“string”返回整数。我要注意的是,此解决方案将更改
数组中项目的顺序。因此,如果@Galaba真的想对另一个数组进行排序,那么这就是需要的:
var sortedArray=array.slice();sortedArray.sort(函数(a,b){return parseInt(a.order.text,10)-parseInt(b.order.text,10);})你能至少解释一下你的代码吗?我想
返回(+a.order.text)-(+b.order.text)
可能也不错。@JinyoungKim这是有效的,但不是一种“自然”的方式。人们希望parseInt返回整数,但不希望+“string”返回整数。我要注意的是,此解决方案将更改
数组中项目的顺序。因此,如果@Galaba真的想对另一个数组进行排序,那么这就是需要的:
var sortedArray=array.slice();sortedArray.sort(函数(a,b){return parseInt(a.order.text,10)-parseInt(b.order.text,10);})