2016-10-06 8 views
0

次のnodejsスクリプト(sortLabels.js)を作成しましたが、オブジェクトが含まれているlabelsFilePathのファイルに対して正常に動作しますが、ファイルの場合はlabelIdsFilePath文字列。私は基本的に両方のファイルを並べ替えるし、新しく並べ替えられた値でこれらのファイルの内容を上書きしようとしています。何らかの理由で、labelIdsファイルに重複があります。スクリプト(node sortLabels)を実行する前にnodejs writeFileが重複を返しています

let labelsFilePath = './server/mocks/label.json'; 
let labels = require(labelsFilePath); 
let labelIdsFilePath = './client/app/common/config/label-ids.json'; 
let labelIds = require(labelIdsFilePath); 
const _ = require('lodash'); 
let fs = require('fs'); 

labels = _.sortBy(labels, "id"); 
labelIds = _.sortBy(labelIds, (num) => num); 

fs.writeFile(labelsFilePath, JSON.stringify(labels), function(err){ 
    if(err) console.log(err); else { 
    console.log('labels were sorted'); 
    } 
}) 

fs.writeFile(labelIdsFilePath, JSON.stringify(labelIds), function(err){ 
    if(err) console.log(err); 
    else { 
    console.log('labels ids were sorted'); 
    } 
}) 

、これはlabelIdsがどのように見えるかです:

[ 
    "0083", 
    "0117", 
    "0021",...] 

以降:

["0012","0012","0021","0021"....] 

私が行方不明/間違って何をやっていますか?

答えて

1

実行の結果、labelIdsFilePathに整形式のJSONオブジェクトがあるので、すべて正常に動作しているようです。

おそらく元の数字セットには重複が含まれていて、それらを並べ替えるとその事実はより透明になりますか?

配列の前後に配列の長さを印刷してみてください。それはサイズを倍増させていないことをあなたに示すはずです。ただ重複しているだけです。

console.log(labelIds.length)

あなたは本当に、重複を必要

labelIds = _.uniq(labelIds)

し、それを保存しない場合。

+0

はい私はそれをやった、前後の長さは同じだった...良い点が、それをチェックします。 – devdropper87

+0

あなたは本当に正しかった、ありがとう – devdropper87

関連する問題