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