{"ScriptPreparationCode":"var list = new Array(10000)\r\nfor (let i = 0; i \u003C list.length; \u002B\u002Bi) {\r\n list[i] = { v: Math.ceil(100 * Math.random()) }\r\n}\r\n\r\nfunction getValue(v) {\r\n return v.v\r\n}\r\n\r\nfunction comparator(v1, v2) {\r\n return v1.v === v2.v\r\n}\r\n\r\nfunction deduplicateWithSet(l) {\r\n const s = new Set()\r\n return l.filter(v =\u003E {\r\n \tconst vv = getValue(v)\r\n if (s.has(vv)) return false\r\n s.add(vv)\r\n return true\r\n })\r\n}\r\n\r\nfunction deduplicateWithIncludes(l) {\r\n const s = []\r\n return l.filter(v =\u003E {\r\n \tconst vv = getValue(v)\r\n if (s.includes(vv)) return false\r\n s.push(vv)\r\n return true\r\n })\r\n}","TestCases":[{"Name":"_.uniqWith","Code":"return _.uniqWith(list, comparator);","IsDeferred":false},{"Name":"Using set","Code":"return deduplicateWithSet(list)","IsDeferred":false},{"Name":"Using Array#includes","Code":"return deduplicateWithIncludes(list)","IsDeferred":false}]}