2017-09-11 9 views
1

私は次の配列があります。latlng:私は2つのフィールドでグループにこれらの配列をlinq.jsを使用したいLINQ、JS GROUPBY座標(緯度、LNG)

var coord = [ 
{flat:"7", house:"14", indication1: "60", lat: "47.93896450", lng:"33.43282100"}, 
{flat:"9", house:"18", indication1: "65", lat: "47.87736800", lng:"33.27488850"}, 
{flat:"10", house:"14", indication1: "24", lat: "47.93896450", lng:"33.43282100"}, 
{flat:"11", house:"14", indication1: "11", lat: "47.93896450", lng:"33.43282100"}, 
{flat:"12", house:"14", indication1: "56", lat: "47.93896450", lng:"33.43282100"}]; 

を。

var h = Enumerable.From(data).GroupBy(
      "{lat: $.lat, lng: $.lng}", 
      "{ House: $.house, Flat: $.flat }", 
      "{ Qlat: $.lat, Qlng: $.lng, info: $$.ToArray()}").ToArray(); 

console.log(h); 

私は2つのグループを見ることが予想されていましたが、5つすべてを取得しました。どこが間違っていましたか?

答えて

0

グループ化するオブジェクトを使用します。新しく生成されたオブジェクトはすべて新しいオブジェクトであり、最後または他のオブジェクトと等しくはありません。

第1パラメータにはnull、第4パラメータにはグループ化情報を含む文字列を使用できます。

var coord = [{ flat: "7", house: "14", indication1: "60", lat: "47.93896450", lng: "33.43282100" }, { flat: "9", house: "14", indication1: "65", lat: "47.87736800", lng: "33.27488850" }, { flat: "10", house: "14", indication1: "24", lat: "47.93896450", lng: "33.43282100" }, { flat: "11", house: "14", indication1: "11", lat: "47.93896450", lng: "33.43282100" }, { flat: "12", house: "14", indication1: "56", lat: "47.93896450", lng: "33.43282100" }], 
 
    grouped = Enumerable.From(coord).GroupBy(
 
     null, 
 
     "{ House: $.house, Flat: $.flat }", 
 
     "{ Qlat: $.lat, Qlng: $.lng, info: $$.ToArray()}", 
 
     "$.lat + '|' + $.lng" 
 
    ).ToArray(); 
 

 
console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.js"></script>

+0

それはクールだが、どのように私は、配列のキーとして座標を設定することができますか? '[Qlat、Qlng] => {info []}' – NisuSan

+0

私はあなたが必要とするものを理解していません。例題の結果を質問に追加してください。 –

関連する問題