1. ホーム
  2. ジャバスクリプト

[解決済み】配列のあるオブジェクトを、配列のあるプロパティでアルファベット順に並べ替えたい

2022-04-03 13:14:24

質問

例えば、次のようなJavaScriptのクラスがあるとします。

var DepartmentFactory = function(data) {
    this.id = data.Id;
    this.name = data.DepartmentName;
    this.active = data.Active;
}

次に、そのクラスのインスタンスをいくつか作成して、配列に格納するとします。

var objArray = [];
objArray.push(DepartmentFactory({Id: 1, DepartmentName: 'Marketing', Active: true}));
objArray.push(DepartmentFactory({Id: 2, DepartmentName: 'Sales', Active: true}));
objArray.push(DepartmentFactory({Id: 3, DepartmentName: 'Development', Active: true}));
objArray.push(DepartmentFactory({Id: 4, DepartmentName: 'Accounting', Active: true}));

で作成されたオブジェクトの配列になります。 DepartmentFactory . を使うにはどうしたらいいのでしょうか? array.sort() メソッドを使って、このオブジェクトの配列を DepartmentName のプロパティは?

array.sort() メソッドは、文字列の配列をソートする際にうまく機能します。

var myarray=["Bob", "Bully", "Amy"];
myarray.sort(); //Array now becomes ["Amy", "Bob", "Bully"]

しかし、これをオブジェクトのリストで動作させるにはどうしたらよいのでしょうか?

どのように解決するのですか?

というようなことをする必要があります。

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

注意: 大文字と小文字を区別せずにソートすることができます。