Comments (9)
@sgarbesi and anyone else seeking example code:
var people = [
{ name: "Tom", age: 19 },
{ name: "John", age: 3 },
{ name: "Seven", age: 37 },
{ name: "John", age: 42 }
];
var filtered_people = _.filter(people, function(p){
return _.includes(['Tom', 'John'], p.name);
});
console.log(filtered_people); // Array[3]
from lodash.
Specifying multiple filter object properties does a logical AND. For example, {name: "John", age: 3}
says "find all items which have both name === "John"
AND age === 3
." You could achieve the same result by chaining multiple _.where
calls, eg.
var littleJohn = _(people).chain().where({name: "John"}).where({age: 3}).value();
Why not make the "passing multiple keys" option a logical OR in that case, where {name: "John", age: 3}
would say "find all items which have both name === "John"
OR age === 3
."
Or is that unintuitive?
from lodash.
This was created from an existing implementation:
http://backbonejs.org/#Collection-where
Seems to work well here and the use cases would suggest logical AND not OR.
from lodash.
Closing until a pull request.
from lodash.
Related to Underscore issue #648.
from lodash.
Also unit tests here.
from lodash.
@jdalton Is it possible to do a multi-value where without having to write a manual loop?
Ex:
var people = [
{ name: "Tom", age: 19 },
{ name: "John". age: 3 },
{ name: "Seven", age: 37 },
{ name: "John", age: 42 }
];
_.where(people, {
name: ['Tom', 'John']
});
Results being the 1st, 2nd and 3rd members of the Array?
from lodash.
Is it possible to do a multi-value where without having to write a manual loop?
Not with the _.matches
shorthand as that would try to match an array value. You'd have to create a callback and use _.filter
.
from lodash.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from lodash.
Related Issues (20)
- Description of `compact` is incomplete.
- [5 years old bug] _.debounce().flush() fix never made it into production
- Sonatype shows a new critical security violation. HOT 3
- Would It Be Possible to Update the Typing of `max([0, anyNumber])` Such That It Returns Number? HOT 3
- Command injection vuln HOT 3
- Add "isWeakRef" function.
- sortBy nor orderBy not working properly
- Cannot import lodash single function in Node HOT 3
- keyBy not support index HOT 2
- lodash.groupby npm package version is still 4.6.0
- Strange _.rearg / _.reduce behaviour
- isEqual returns incorrect result
- bun build commands not working as expected
- orderBy orders field boolean dosent work HOT 1
- Please republish lodash.forin HOT 4
- Wrong version in lodash.pick vulnerability report CVE-2020-8203 HOT 8
- `lodash.merge` drops keys that are symbols
- Type of parameter object is string in function baseGet(object, path)
- cloneDeep not cloning nested Map
- Method `sumBy` returns string HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lodash.