查看适用于 JavaScript 的 Linq (linq.js),这是 CodePlex 提供的免费 JavaScript 库:
https://linqjs.codeplex.com/
您可以在参考页面试用代码sn-ps live(包含在linqpad包中,先解压缩-然后将代码sn-p粘贴到代码框中,然后显示结果立即):
LinqJS\linq.js_ver2.2.0.2\reference.htm
与 C# LINQ 一样,它有一个 .distinct 方法,可以将您的 JSON 数组作为单行来完成这项工作,例如:
var array = [100, 200, 30, 40, 500, 40, 200];
var ex1 = Enumerable.From(array).Distinct().ToArray(); // [100, 200, 30, 40, 500]
它具有您从 C# LINQ 中知道的大多数方法,并且可以作为非 jQuery 或作为具有完整 NUGET 支持的 jQuery 版本提供。
也支持具有命名属性的数组,例如您在示例中的属性,例如:
var list = [
{ one: 2, two: 4, three: 1 },
{ one: 4, two: 7, three: 5 },
{ one: 2, two: 4, three: 1 },
{ one: 7, two: 3, three: 2 },
];
Enumerable.From(list).Distinct("$.one")
.OrderBy("$.a").ThenBy("$.two").ThenBy("$.three")
.Select("$.one + ':' + $.two + ':' + $.three")
给你结果:
2:4:1
4:7:5
7:3:2