{"_id":"filter-where","_rev":"8-17ed0effc79fb0866f716c0443ce9023","name":"filter-where","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"filter-where","version":"1.0.0","keywords":["where","array","filter","custom"],"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"license":"MIT","_id":"filter-where@1.0.0","maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"homepage":"https://github.com/75lb/filter-where#readme","bugs":{"url":"https://github.com/75lb/filter-where/issues"},"dist":{"shasum":"cf69613bfcaef00d754339fc523a5220e7b92aa7","tarball":"https://registry.npmjs.org/filter-where/-/filter-where-1.0.0.tgz","integrity":"sha512-4WfIDWojPcolC5Vl20jDWGOjuxBFGw5lKpw+zLZgEV/rXqBYGMHD74oHuaPdEool9erpzvU7WmxW44cdt8OsZQ==","signatures":[{"sig":"MEYCIQDO40sYHf4BFzCaQSDEVzeyxKDPejyvOPpIx6eMmoCaSQIhAO/jVb9Vqn50veVMKWfhqm1o2Bnk1jKtTuQSBWcBh2I3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/filter-where.js","_from":".","_shasum":"cf69613bfcaef00d754339fc523a5220e7b92aa7","engines":{"node":">=0.10.0"},"gitHead":"9d63d9b6bb511eb3d8b829a76cf432057c0b1976","scripts":{"docs":"jsdoc2md2 -t jsdoc2md/README.md lib/*.js > README.md; echo","test":"tape test/*.js"},"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"repository":{"url":"git+https://github.com/75lb/filter-where.git","type":"git"},"_npmVersion":"3.7.5","description":"filter-where","directories":{},"_nodeVersion":"5.7.0","dependencies":{"test-value":"^1.0.1"},"devDependencies":{"tape":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/filter-where-1.0.0.tgz_1456400945269_0.6231970840599388","host":"packages-5-east.internal.npmjs.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"filter-where","version":"1.0.1","keywords":["where","array","filter","custom"],"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"license":"MIT","_id":"filter-where@1.0.1","maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"homepage":"https://github.com/75lb/filter-where#readme","bugs":{"url":"https://github.com/75lb/filter-where/issues"},"dist":{"shasum":"1b042569edce36bc1c4e9f73740d2c4e2feef77d","tarball":"https://registry.npmjs.org/filter-where/-/filter-where-1.0.1.tgz","integrity":"sha512-WR5ZwPkYow93louUCfSeTmn8Q7M/X9uMY6LUqTBr1DgohVd7cYZ+B9MHTsQJ9FHKpvkz32LBppTNXPC/Z/pRHA==","signatures":[{"sig":"MEQCIB0+jpLCPRddhU2E7xVHP4TpLWv9uz27jZ/m/tV5R9CHAiA0soqkkTXjibNfkZRRpArTr3tjbO9JUc0dgyZ8C+CKDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/filter-where.js","_from":".","_shasum":"1b042569edce36bc1c4e9f73740d2c4e2feef77d","engines":{"node":">=0.10.0"},"gitHead":"7c576932076f7bd4ed9c534e7b00f2e24151bb87","scripts":{"docs":"jsdoc2md2 -t jsdoc2md/README.md lib/*.js > README.md; echo","test":"tape test/*.js"},"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"repository":{"url":"git+https://github.com/75lb/filter-where.git","type":"git"},"_npmVersion":"3.7.5","description":"Filter an array using any combination of scalars, object queries, functions or regular expressions.","directories":{},"_nodeVersion":"5.7.0","dependencies":{"test-value":"^1.0.1"},"devDependencies":{"tape":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/filter-where-1.0.1.tgz_1456401597358_0.14866211777552962","host":"packages-6-west.internal.npmjs.com"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"2.0.0":{"name":"filter-where","version":"2.0.0","keywords":["where","array","filter","custom"],"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"license":"MIT","_id":"filter-where@2.0.0","maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"homepage":"https://github.com/75lb/filter-where#readme","bugs":{"url":"https://github.com/75lb/filter-where/issues"},"dist":{"shasum":"b6803b017cf94b4cb879e769248feb05b3356cf6","tarball":"https://registry.npmjs.org/filter-where/-/filter-where-2.0.0.tgz","fileCount":7,"integrity":"sha512-BZTKoPiT1GljPSw8o41vKCKLDSqHplf2nehiyZWexVJVdtC25HC/eDuSVnTk0xAYe/xevTcKIKAzDvyEw877Ow==","signatures":[{"sig":"MEYCIQDfFGWDCcgHY35QntfsV6eJrUnUIClpHBRyr/8HqrQZ7gIhAN9oCLIlGmguHzUbDvCtmhQQI3SJ3Pwfzy1teVFm1ES/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/xkHCRA9TVsSAnZWagAAyTEP/2T5atNKlvkkzZLpqBkJ\nPGzcxt4GvObU0kQEn86xMPNAd4t2I6Xz3vE8d6JkmugDgWr7iLlodjmVJizS\ngLR7//ISOxxiBJEBUUaO5fzT9XwydVE1c2OrwgglyQRqmVwpwE2OHUDTVvxb\nXiy+4GLaygeCb+d3MN3pn7D0bvIVQv8H8qWrtRuOgmvUSdeMou5D1I2WxeHe\nGu0B3nE1DMQEgOPo+YZeTeAALfmuWPkNhzvAiY9fpTK5A9iEZxTrm/MlSHz8\nfjNdWMKDSdvB/3v5s0hbdz/U5HmRsRnSGpy5EPmwGBQ50uDfVjmr5ZSm3+Ea\nsZYkAHMoLk83Z9kRHG3bd8VU6cr0AITSmhxW1HotixUfpV/+pcogyauwKLJZ\nSw/6ttLlKGyiSOCJUqUMJXm2vMkj5XJpDWAfxTTHC6Xyo1liggArpcRTF2wN\nycUmPf4Fg7DUkL7pO8XinDvm3+aJ7gKuScgiUmENPHD34Bu5JvotofooGYGc\nRsR3CLKqy/sbWLPD2x4O7mn3ZMp7j/NescoGeKwYBIIMD9U0IttuK69oQq9l\nhB5LKPW9uNR3a4YRYg4zANDDG4kCTt8+GCsxfKtijQPu1tsFUbQsZrgRj1++\n2oonU+LhHoykyYxskXeZnIm58j9u8r2q3/oTSSTQVbqPJcwoccbDsor+4tMa\nsbmu\r\n=ls+8\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=6"},"gitHead":"a7bc9fe8f603c2248ce7ca7891e5b8c449943ba1","scripts":{"docs":"jsdoc2md -t jsdoc2md/README.hbs index.js > README.md; echo","test":"test-runner test.js"},"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"repository":{"url":"git+https://github.com/75lb/filter-where.git","type":"git"},"_npmVersion":"6.4.1","description":"Filter an array using any combination of scalars, object queries, functions or regular expressions.","directories":{},"_nodeVersion":"11.2.0","dependencies":{"test-value":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"test-runner":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/filter-where_2.0.0_1543444742960_0.2737863844859503","host":"s3://npm-registry-packages"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2016-02-25T11:49:06.420Z","modified":"2026-03-02T17:38:28.464Z","1.0.0":"2016-02-25T11:49:06.420Z","1.0.1":"2016-02-25T12:00:00.151Z","2.0.0":"2018-11-28T22:39:03.227Z"},"bugs":{"url":"https://github.com/75lb/filter-where/issues"},"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"license":"MIT","homepage":"https://github.com/75lb/filter-where#readme","keywords":["where","array","filter","custom"],"repository":{"url":"git+https://github.com/75lb/filter-where.git","type":"git"},"description":"Filter an array using any combination of scalars, object queries, functions or regular expressions.","maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"readme":"[![view on npm](http://img.shields.io/npm/v/filter-where.svg)](https://www.npmjs.org/package/filter-where)\n[![npm module downloads](http://img.shields.io/npm/dt/filter-where.svg)](https://www.npmjs.org/package/filter-where)\n[![Build Status](https://travis-ci.org/75lb/filter-where.svg?branch=master)](https://travis-ci.org/75lb/filter-where)\n[![Dependency Status](https://david-dm.org/75lb/filter-where.svg)](https://david-dm.org/75lb/filter-where)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)\n\n<a name=\"module_filter-where\"></a>\n\n## filter-where\nFilter an array using any combination of scalars, object queries, functions or regular expressions.\n\n<a name=\"exp_module_filter-where--where\"></a>\n\n### where(query) ⇒ <code>function</code> ⏏\n**Kind**: Exported function  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| query | <code>any</code> \\| <code>Array.&lt;any&gt;</code> | one or more queries |\n\n**Example**  \nSay you have a recordset:\n```js\n> data = [\n    { name: 'Dana', age: 30 },\n    { name: 'Yana', age: 20 },\n    { name: 'Zhana', age: 10 }\n]\n```\n\nYou can return records with properties matching an exact value:\n```js\n> data.filter(where({ age: 10 }))\n[ { name: 'Zhana', age: 10 } ]\n```\n\nor where NOT the value (prefix the property name with `!`)\n```js\n> data.filter(where({ '!age': 10 }))\n[ { name: 'Dana', age: 30 }, { name: 'Yana', age: 20 } ]\n```\n\nmatch using a function:\n```js\n> function over10(age){ return age > 10; }\n> data.filter(where({ age: over10 }))\n[ { name: 'Dana', age: 30 }, { name: 'Yana', age: 20 } ]\n```\n\nmatch using a regular expression\n```js\n> data.filter(where({ name: /ana/ }))\n[ { name: 'Dana', age: 30 },\n  { name: 'Yana', age: 20 },\n  { name: 'Zhana', age: 10 } ]\n```\n\nYou can query to any arbitrary depth. So with deeper data, like this:\n```js\n> deepData = [\n    { name: 'Dana', favourite: { colour: 'light red' } },\n    { name: 'Yana', favourite: { colour: 'dark red' } },\n    { name: 'Zhana', favourite: { colour: [ 'white', 'red' ] } }\n]\n```\n\nget records with `favourite.colour` values matching `/red/`\n```js\n> deepData.filter(where({ favourite: { colour: /red/ } }))\n[ { name: 'Dana', favourite: { colour: 'light red' } },\n  { name: 'Yana', favourite: { colour: 'dark red' } } ]\n```\n\nif the value you're looking for _maybe_ part of an array, prefix the property name with `+`. Now Zhana is included:\n```js\n> deepData.filter(where({ favourite: { '+colour': /red/ } }))\n[ { name: 'Dana', favourite: { colour: 'light red' } },\n  { name: 'Yana', favourite: { colour: 'dark red' } },\n  { name: 'Zhana', favourite: { colour: [ 'white', 'red' ] } } ]\n```\n\nyou can combine any of the above by supplying an array of queries. Records will be returned if _any_ of the queries match:\n```js\n> const nameBeginsWithY = { name: /^Y/ }\n> const faveColourIncludesWhite = { favourite: { '+colour': 'white' } }\n\n> deepData.filter(where([ nameBeginsWithY, faveColourIncludesWhite ]))\n[ { name: 'Yana', favourite: { colour: 'dark red' } },\n  { name: 'Zhana', favourite: { colour: [ 'white', 'red' ] } } ]\n```\n\n* * *\n\n&copy; 2016-18 Lloyd Brookes \\<75pound@gmail.com\\>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).\n","readmeFilename":"README.md"}