对对象数组、javascript内联条件进行排序时出现意外输出

对对象数组、javascript内联条件进行排序时出现意外输出,javascript,arrays,object,Javascript,Arrays,Object,我试图根据属性值获取对象数组的排序索引。我有以下简化的例子: let myObj={myArray:[{amt:0.02380952380952380},{amt:1.0238095238095237},{amt:0.02380952380952380},{amt:-0.02380952380952380} 让索引=新数组; for(设i=0;i(项目[a].amt>项目[b].amt) 1. :((项目[b].amt>项目[a].amt)?-1:0); console.log(index)/

我试图根据属性值获取对象数组的排序索引。我有以下简化的例子:

let myObj={myArray:[{amt:0.02380952380952380},{amt:1.0238095238095237},{amt:0.02380952380952380},{amt:-0.02380952380952380}
让索引=新数组;
for(设i=0;i(项目[a].amt>项目[b].amt)
1.
:((项目[b].amt>项目[a].amt)?-1:0);

console.log(index)//给出[3,0,2,1]预期的[2,3,1,0]或[1,3,2,0]
上述代码运行正常。我使用
indexOf
获得所需的输出:

let indices2 = new Array;
for (let i= 0; i<myObj.myArray.length;i++){ indices2[i] = indices.indexOf(i) }
let indicates2=新数组;
对于(设i=0;i项[b]。金额)?1:((项目[b].金额>项目[a].金额)?-1:0);

例如(让i=0;我来解释为什么您会期望两个不同的结果(“期望的[2,3,1,0]或[1,3,2,0]))排序数组时?@Andreas在
myArray
对象中有两个相同的值。我不确定这些值在输出中的预期顺序…@Andreas我已经添加了一些关于这方面的更多信息,谢谢
myObj[3]。amt
是最小的,
myObj[1]AMT 是最大的。顺序<代码> 3, 0, 2,1 < /代码>对我来说似乎完全正确。为什么你期望3在中间某个地方?“MBOJKO你是对的……我之前有点迷惑了,并且瞄准的是最低的位置在<代码> MyReals后面是第二的位置等等。也许应该说“希望”。我在回答中确实下了决心,但也许有更好的方法。。。