如何在JavaScript中对属性未知的对象进行排序

如何在JavaScript中对属性未知的对象进行排序,javascript,Javascript,我需要创建按值排序的动态对象,但我不知道该属性的名称,我尝试使用\uu.sortby,但由于我不知道该属性,因此无法工作 初始对象: { 134:0, 135:1, 136:2, 137:3, 138:4, 139:5, 140:15, 141:16, 142:17, 143:18, 144:19, 145:6, 146:7, 147:11, 148:12, 149:1

我需要创建按值排序的动态对象,但我不知道该属性的名称,我尝试使用
\uu.sortby
,但由于我不知道该属性,因此无法工作

初始对象:

{
    134:0,
    135:1,
    136:2,
    137:3,
    138:4,
    139:5,
    140:15,
    141:16,
    142:17,
    143:18,
    144:19,
    145:6,
    146:7,
    147:11,
    148:12,
    149:13,
    150:14,
    470:10,
    471:20,
    768:8,
    769:9,
    770:21,
    771:22,
    772:23,
    773:24,
    774:25
}
最后一个对象必须如下所示:

{
    134:0,
    135:1,
    136:2,
    137:3,
    138:4,
    139:5,
    145:6,
    146:7,
    768:8,
    769:9,
    470:10,
    147:11,
    148:12,
    149:13,
    150:14,
    140:15,
    141:16,
    142:17,
    143:18,
    144:19,
    471:20,
    770:21,
    771:22,
    772:23,
    773:24,
    774:25
}

您可能希望对对象键进行排序,然后将其映射到其值:

var obj={134:0 135:1 136:2 137:3 138:4 139:5 140:15 141:16 142:17};
获取按键排序的值:

console.log(Object.keys(obj).sort().map(key=>obj[key]));//[0,1,2,3,4,5,15,16,17]

请注意,不能对对象和关键帧进行排序。这就是上面的代码返回数组的原因。

创建一个数组,其索引是对象属性值,值是属性名称。然后,此数组的顺序将是结果中所需属性的顺序

var对象={
134:0,
135:1,
136:2,
137:3,
138:4,
139:5,
140:15,
141:16,
142:17,
143:18,
144:19,
145:6,
146:7,
147:11,
148:12,
149:13,
150:14,
470:10,
471:20,
768:8,
769:9,
770:21,
771:22,
772:23,
773:24,
774:25
};
var数组=[];
for(对象中的变量键){
数组[对象[键]]=键;
}
var newObject={};
array.forEach(函数(el,i){
newObject[el]=i;
});

console.log(newObject)我不认为您可以在JavaScript中更改对象属性的顺序。
但是您可以通过对其值进行排序并使用属性键和值将其存储在数组中来选择:

var o={134:0,135:1,136:2,137:3,138:4,139:5,140:15,141:16,142:17,143:18,144:19,145:6,146:7,147:11,148:12,149:13,150:14,470:10,471:20,768:8,769:9,770:21,771:22,772:23,773:24,774:25};

log(Object.keys(o).sort((a,b)=>{returno[a]-o[b];}).map((e)=>{return{key:e,value:o[e]};})对象没有顺序,除了它们添加到对象的顺序。如果键实际上是数字,请使用数组或集合。如果可以操纵响应,只需添加键并对其进行排序。对对象属性进行排序的目的是什么?要找到它们的最大价值?我需要订购它来制作订单元素的模具,但我需要属性的名称,这些值仅用于订单it@JavierGutierrez你不能!问题是这样的,我有一个对象数组,我想对它进行排序,因为每个属性都是一个列,因为顺序第一,让一个对象包含必要的顺序,这是初始对象初始{3:46,8:25,5:45,10:78,area:'area'state:'state'}第一个值是id,但实际顺序必须像这样{10:78,3:46,5:45,8:25}在我知道真正的顺序之后,我需要将初始对象排序为initial=mold;initial{10:78,3:46,5:45,8:25,区域:'area'状态:'state'}