{"ScriptPreparationCode":"window.items = [\r\n { id: \u0027a5\u0027, a: 1, b: 2 },\r\n { id: \u0027a3\u0027, a: 1, b: 2 },\r\n { id: \u0027a8\u0027, a: 1, b: 2 },\r\n { id: \u0027b1\u0027, a: 1, b: 2 },\r\n { id: \u0027ac0\u0027, a: 1, b: 2 },\r\n { id: \u0027a7\u0027, a: 1, b: 2 },\r\n { id: \u0027a0\u0027, a: 1, b: 2 },\r\n { id: \u0027a6\u0027, a: 1, b: 2 },\r\n { id: \u0027a5\u0027, a: 1, b: 2 },\r\n { id: \u0027a4\u0027, a: 1, b: 2 },\r\n { id: \u0027a3\u0027, a: 1, b: 2 },\r\n { id: \u0027a2\u0027, a: 1, b: 2 }\r\n];\r\n\r\nwindow.products = {\r\n a0: { x: 1, y: 1, z: 1, id: \u0027a0\u0027 },\r\n a1: { x: 1, y: 1, z: 1, id: \u0027a1\u0027 },\r\n a2: { x: 1, y: 1, z: 1, id: \u0027a2\u0027 },\r\n a3: { x: 1, y: 1, z: 1, id: \u0027a3\u0027 },\r\n a5: { x: 1, y: 1, z: 1, id: \u0027a5\u0027 },\r\n a7: { x: 1, y: 1, z: 1, id: \u0027a7\u0027 },\r\n a8: { x: 1, y: 1, z: 1, id: \u0027a8\u0027 },\r\n a9: { x: 1, y: 1, z: 1, id: \u0027a9\u0027 },\r\n a10: { x: 1, y: 1, z: 1, id: \u0027a10\u0027 },\r\n a11: { x: 1, y: 1, z: 1, id: \u0027a11\u0027 },\r\n a12: { x: 1, y: 1, z: 1, id: \u0027a12\u0027 },\r\n a13: { x: 1, y: 1, z: 1, id: \u0027a13\u0027 },\r\n a14: { x: 1, y: 1, z: 1, id: \u0027a14\u0027 },\r\n a15: { x: 1, y: 1, z: 1, id: \u0027a15\u0027 },\r\n a16: { x: 1, y: 1, z: 1, id: \u0027a16\u0027 }\r\n};\r\n","TestCases":[{"Name":"Lodash Filter","Code":"window.result = _(items)\r\n\t.map(item =\u003E item.id)\r\n\t.uniq()\r\n\t.map(id =\u003E products[id] || {})\r\n\t.filter(el =\u003E !!Object.keys(el).length)\r\n\t.value();\r\n\r\n//console.log(\u0027result lodash:\u0027, result);\r\n","IsDeferred":false},{"Name":"Native Filter","Code":"window.result = _(items)\r\n\t.map(item =\u003E item.id)\r\n\t.uniq()\r\n\t.map(id =\u003E products[id] || {})\r\n\t.value()\r\n\t.filter(el =\u003E !!Object.keys(el).length);\r\n\r\n//console.log(\u0027result native:\u0027, result);\r\n","IsDeferred":false}]}