javascript - linq,js GroupBy 坐标(lat, lng)

标签 javascript arrays linq.js

我有以下数组:

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"}];

我想使用 linq.js 按两个字段对这些数组进行分组:latlng

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 组。我哪里错了?

最佳答案

您使用对象进行分组。每个新生成的对象都是一个新对象,不等于最后一个或任何其他对象。

您可以将 null 作为第一个参数,将包含分组信息的字符串作为第四个参数。

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>

关于javascript - linq,js GroupBy 坐标(lat, lng),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46156890/

相关文章:

在 C 中复制字符数组?

Javascript 递归函数和 Lodash

javascript - JavaScript knockout 中的嵌套 for 循环

javascript - jquery 未指定错误 IE

javascript - JS - 找出被遮挡的 DOM 元素的可见百分比

javascript - 根据文本更改更改背景颜色

javascript - 我的 DOM 中的 Google Analytics(分析)像素在哪里?

java - 如何使用 Arrays.sort 输出

javascript - js 的 linq : how to get cartesian product of multiple arrays

javascript - 如何使用 linq.js 将字符串数组与对象数组进行比较