基于一个属性按字母顺序对数组中的对象进行排序

时间:2018-01-05 10:15:50

标签: javascript arrays sorting

我知道有一个类似的问题,Javascript - sort objects in an array alphabetically on one property of the array,但是当我使用这种方法一步一步地运行时,它会跳过排序。

我有一个在控制台中看起来像这样的对象数组:

0:{id: "3645256536754", name: "john", description: "man", children: Array(0)}
1:{id: "8672092533958", name: "alex", description: "man", children: Array(2)}

我必须在其上forEach,但在确定它是基于name属性的字母顺序之前。

我是这样做的:

myArray.sort(function (a, b) {
    var textA = a.name.toUpperCase();
    var textB = b.name.toUpperCase();
    return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
})

当我一步一步地运行时,它跳过这段代码,我不知道为什么。有什么建议吗?

1 个答案:

答案 0 :(得分:7)

使用@ gurvinder372的评论作为影响,您应该执行以下操作:

myArray.sort(function (a, b) {
  var textA = a.name.toUpperCase();
  var textB = b.name.toUpperCase();

  return textA.localeCompare(textB);
});