2017-11-08 7 views
-1

私はJSONデータを持っています。私はこれを持っていないなぜ私の比較関数はオブジェクトをソートせず、同じオブジェクト配列をソートしないのですか?

[ 
{ 
    "name" : "", 
    "location" : "home" 
}, 
{ 
    "name" : "", 
    "location" : "office" 
} 
] 

...

var = data [ 
    { 
     "name" : "", 
     "location" : "home" 
    }, 
    { 
     "name" : "", 
     "location" : "office" 
    } 
    ] 

私は私のデータをソートする(B)の比較機能を使用することはできません。データがJSON形式でない場合は、私が呼び出せるdata.sort(比較)を呼び出すことができないため、これは機能しません。このソリューションは、私のために動作しません Sort array of objects by string property value in JavaScript

私が使うことができれば、私はこの答えを使用することができます比較します。 FSを使用して.jsonからデータを開く必要があります。

let data = fs.readFileSync('./app/data/testData.json'); 

obj.locationをアルファベット順に使用してデータを整理したいと思います。私はこれを尋ねようとし、人々はそれをjavascriptソリューション(比較機能)を使っ​​てマークしました。 JSONデータでこの関数をどのように使用することができるかを説明できる場合は、そのソリューションを使用します。私はそれを実装しようとしましたが、それは何もしないし、私のデータを同じ順序で残します。

JSONデータを比較機能を使用できる形式に変換できますか?

現時点ではコードを編集しています 私はこれを上記のソリューションに基づいており、データをソートしません。

function compare(a,b) { 
    if (a.location < b.location) 
    return -1; 
    if (a.location > b.location) 
    return 0; 
    return 0; 
} 

let dataSort = fs.readFileSync('./app/data/testData.JSON'); 
let dataParse = JSON.parse(dataSort); 

dataParse.sort(compare); 

console.log(dataParse); 

これは、メニューでは何も並べていないまったく同じデータセットを返します。

+0

オリジナルの質問:https://stackoverflow.com/questions/47187517/what-is-wrong-with-the-way-im-sorting-my-array-of-json-objects – Amy

+0

何が間違っていた重複していますか? – Amy

+1

'let data = fs.readFileSync( './app/data/testData.json');だけです。 data = JSON.parse(data); ' – dave

答えて

0

let data = JSON.parse(fs.readFileSync('./app/data/testData.json'));

data

今は、オブジェクトの配列として利用可能です。

+0

私はこれをもともと試しましたが、それで私はまだ分類できません。それまたはソート機能は動作しませんが、2000+の回答で私はそれが – user3622460

0

var myObject = JSON.parse(ファイルデータをここにロード);

関連する問題