我知道有一个类似的问题,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;
})
当我一步一步地运行时,它跳过这段代码,我不知道为什么。有什么建议吗?
答案 0 :(得分:7)
使用@ gurvinder372的评论作为影响,您应该执行以下操作:
myArray.sort(function (a, b) {
var textA = a.name.toUpperCase();
var textB = b.name.toUpperCase();
return textA.localeCompare(textB);
});