Skip to content

update docs to 4.17.21#300

Merged
jonchurch merged 2 commits intolodash:masterfrom
jonchurch:update-to-4.17.21
Dec 2, 2025
Merged

update docs to 4.17.21#300
jonchurch merged 2 commits intolodash:masterfrom
jonchurch:update-to-4.17.21

Conversation

@jonchurch
Copy link
Copy Markdown
Member

@jonchurch jonchurch commented Nov 20, 2025

I figured out how the docs are meant to be built.

From the lodash main repo, follow these directions:
https://gist.github.com/jonchurch/d0f641e9395a34afe35c9ab4043f378a

((reproduced instructions for posterity...) # Building Lodash Documentation HTML

Steps

# 1. Switch to Node 11
nvm use 11

# 2. Install dependencies (if not done yet)
npm install

# 3. Build docs
npm run doc:sitehtml

# Output: doc/4.17.21.html

Why Node 11?

oniguruma@6.2.1 (used by marky-markdown) is incompatible with modern Node.js due to old nan@^2.0.9 and V8 API changes. Node 11 is the newest version that works.

If you have ignore-scripts=true in ~/.npmrc

Check if you have it enabled:

npm config get ignore-scripts

If it returns true, use these commands instead:

# 1. Switch to Node 11
nvm use 11

# 2. Manually build oniguruma (one-time)
cd node_modules/oniguruma && npx node-gyp@8 rebuild && cd ../..

# 3. Build docs directly
node lib/main/build-doc site && node lib/main/build-site

# Output: doc/4.17.21.html

to generate an html document

then copy that over into this repo's doc dir

# from the lodash main dir after above step
cp doc/4.17.21.html ../lodash.com/docs/4.17.21.temp.html
cd ../lodash.com # come back to the website repo

# for my own mollifaction I wanted a git mv to keep the diff history simple
git mv docs/4.17.15.html docs/4.17.21.html # rename the old docs to the new docs before overwrite
git add docs/4.17.21.html && git commit -m 'rename old docs to new docs'

mv docs/4.17.21.temp.html docs/4.17.21.html

then update to the latest version of lodash, telling the site what the latest version is:

npm i -D lodash@4.17.21

# pass the latest version string into this script to update config for the site build
npm run build:config 4.17.21
npm run build

And that brings us to wherew we are now in this PR

@netlify
Copy link
Copy Markdown

netlify bot commented Nov 20, 2025

Deploy Preview for lodash ready!

Name Link
🔨 Latest commit 69e21b9
🔍 Latest deploy log https://app.netlify.com/projects/lodash/deploys/691f93edd5ce8c0008c90084
😎 Deploy Preview https://deploy-preview-300--lodash.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@@ -1699,12 +1699,12 @@ <h4>Arguments</h4>
<h4>Returns</h4>
<p><em>(Array)</em>: Returns the new filtered array.</p>
<h4>Example</h4>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;users&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;true&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">40</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;false&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;<span class="type">function</span>(o)&#xA0;{&#xA0;return&#xA0;!o<span class="delimiter">.</span>active;&#xA0;});</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;fred&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.matches`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;{&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;true&#xA0;});</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;barney&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.matchesProperty`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;active&apos;</span><span class="delimiter">,</span>&#xA0;false]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;fred&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.property`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;barney&apos;]</span></div></pre></div>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;users&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;true&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">40</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;false&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;<span class="type">function</span>(o)&#xA0;{&#xA0;return&#xA0;!o<span class="delimiter">.</span>active;&#xA0;});</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;fred&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.matches`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;{&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>:&#xA0;true&#xA0;});</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;barney&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.matchesProperty`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;active&apos;</span><span class="delimiter">,</span>&#xA0;false]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;fred&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;The&#xA0;`_.property`&#xA0;iteratee&#xA0;shorthand.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;<span class="string">&apos;active&apos;</span>);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;barney&apos;]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;Combining&#xA0;several&#xA0;predicates&#xA0;using&#xA0;`_.overEvery`&#xA0;or&#xA0;`_.overSome`.</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(users<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([{&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span>&#xA0;}<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;age&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">40</span>]]));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[&apos;fred&apos;,&#xA0;&apos;barney&apos;]</span></div></pre></div>
Copy link
Copy Markdown
Member Author

@jonchurch jonchurch Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leaving comment explaining this diff since its unreadble, these diffs are from the doc build output from lodash repo

Added a 5th example demonstrating how to combine multiple predicates with OR logic:

// Combining several predicates using `_.overEvery` or `_.overSome`.
 _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));
 // => objects for ['fred', 'barney']

https://github.com/lodash/lodash/blob/9648f692b0fc7c2f6a7a763d754377200126c2e8/lodash.js#L9235-L9238

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant PR lodash/lodash#4514

@@ -2171,15 +2171,15 @@ <h4>Arguments</h4>
<h4>Returns</h4>
<p><em>(Array)</em>: Returns the new sorted array.</p>
<h4>Example</h4>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;users&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">48</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">40</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">34</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">sortBy</span>(users<span class="delimiter">,</span>&#xA0;[<span class="type">function</span>(o)&#xA0;{&#xA0;return&#xA0;o<span class="delimiter">.</span>user;&#xA0;}]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[[&apos;barney&apos;,&#xA0;36],&#xA0;[&apos;barney&apos;,&#xA0;34],&#xA0;[&apos;fred&apos;,&#xA0;48],&#xA0;[&apos;fred&apos;,&#xA0;40]]</span></div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">sortBy</span>(users<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;user&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[[&apos;barney&apos;,&#xA0;34],&#xA0;[&apos;barney&apos;,&#xA0;36],&#xA0;[&apos;fred&apos;,&#xA0;40],&#xA0;[&apos;fred&apos;,&#xA0;48]]</span></div></pre></div>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;users&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">48</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">36</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;fred&apos;</span><span class="delimiter">,</span>&#xA0;&#xA0;&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">30</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;user&apos;</span>:&#xA0;<span class="string">&apos;barney&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>:&#xA0;<span class="numeric">34</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">sortBy</span>(users<span class="delimiter">,</span>&#xA0;[<span class="type">function</span>(o)&#xA0;{&#xA0;return&#xA0;o<span class="delimiter">.</span>user;&#xA0;}]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[[&apos;barney&apos;,&#xA0;36],&#xA0;[&apos;barney&apos;,&#xA0;34],&#xA0;[&apos;fred&apos;,&#xA0;48],&#xA0;[&apos;fred&apos;,&#xA0;30]]</span></div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">sortBy</span>(users<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;user&apos;</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;age&apos;</span>]);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;objects&#xA0;for&#xA0;[[&apos;barney&apos;,&#xA0;34],&#xA0;[&apos;barney&apos;,&#xA0;36],&#xA0;[&apos;fred&apos;,&#xA0;30],&#xA0;[&apos;fred&apos;,&#xA0;48]]</span></div></pre></div>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leaving comment explaining this diff since its unreadble, these diffs are from the doc build output from lodash repo

Changed the third user's age from 40 to 30 to make multi-level sorting more obvious:
{ 'user': 'fred', 'age': 30 } // was 40

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant PR lodash/lodash#4467

@@ -6041,20 +6045,24 @@ <h4>Arguments</h4>
<h4>Returns</h4>
<p><em>(Function)</em>: Returns the new spec function.</p>
<h4>Example</h4>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;objects&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">2</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">3</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">5</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matches</span>({&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;[{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}]</span></div></pre></div>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;objects&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">2</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">3</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">5</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matches</span>({&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;[{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}]</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;Checking&#xA0;for&#xA0;several&#xA0;possible&#xA0;values</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([_<span class="delimiter method">.</span><span class="name">matches</span>({&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span>&#xA0;})<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matches</span>({&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span>&#xA0;})]));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;[{&#xA0;&apos;a&apos;:&#xA0;1,&#xA0;&apos;b&apos;:&#xA0;2,&#xA0;&apos;c&apos;:&#xA0;3&#xA0;},&#xA0;{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}]</span></div></pre></div>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_.matches - Added _.overSome example

Added a 2nd example showing how to check for multiple possible matches:

  // Checking for several possible values
  _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));
  // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant PR lodash/lodash#4514

@@ -6065,12 +6073,12 @@ <h4>Arguments</h4>
<h4>Returns</h4>
<p><em>(Function)</em>: Returns the new spec function.</p>
<h4>Example</h4>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;objects&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">2</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">3</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">5</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="support">find</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matchesProperty</span>(<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">4</span>));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}</span></div></pre></div>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;objects&#xA0;=&#xA0;[</div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">2</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">3</span>&#xA0;}<span class="delimiter">,</span></div><div>&#xA0;&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">4</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;b&apos;</span>:&#xA0;<span class="numeric">5</span><span class="delimiter">,</span>&#xA0;<span class="string">&apos;c&apos;</span>:&#xA0;<span class="numeric">6</span>&#xA0;}</div><div>];</div><div>&#xA0;</div><div>_<span class="delimiter method">.</span><span class="support">find</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matchesProperty</span>(<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">4</span>));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}</span></div><div>&#xA0;</div><div><span class="comment">//&#xA0;Checking&#xA0;for&#xA0;several&#xA0;possible&#xA0;values</span></div><div>_<span class="delimiter method">.</span><span class="name">filter</span>(objects<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([_<span class="delimiter method">.</span><span class="name">matchesProperty</span>(<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">1</span>)<span class="delimiter">,</span>&#xA0;_<span class="delimiter method">.</span><span class="name">matchesProperty</span>(<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">4</span>)]));</div><div><span class="comment">//&#xA0;=&gt;&#xA0;[{&#xA0;&apos;a&apos;:&#xA0;1,&#xA0;&apos;b&apos;:&#xA0;2,&#xA0;&apos;c&apos;:&#xA0;3&#xA0;},&#xA0;{&#xA0;&apos;a&apos;:&#xA0;4,&#xA0;&apos;b&apos;:&#xA0;5,&#xA0;&apos;c&apos;:&#xA0;6&#xA0;}]</span></div></pre></div>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_.matchesProperty - Added _.overSome example

Added a 2nd example showing how to check for multiple possible property values:

  // Checking for several possible values
  _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));
  // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant PR lodash/lodash#4514

@@ -6218,12 +6236,12 @@ <h4>Arguments</h4>
<h4>Returns</h4>
<p><em>(Function)</em>: Returns the new function.</p>
<h4>Example</h4>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;func&#xA0;=&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([<span class="support">Boolean</span><span class="delimiter">,</span>&#xA0;isFinite]);</div><div>&#xA0;</div><div><span class="name">func</span>(<span class="string">&apos;1&apos;</span>);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;true</span></div><div>&#xA0;</div><div><span class="name">func</span>(null);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;true</span></div><div>&#xA0;</div><div><span class="name">func</span>(NaN);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;false</span></div></pre></div>
<div class="highlight js"><pre><div><span class="type">var</span>&#xA0;func&#xA0;=&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([<span class="support">Boolean</span><span class="delimiter">,</span>&#xA0;isFinite]);</div><div>&#xA0;</div><div><span class="name">func</span>(<span class="string">&apos;1&apos;</span>);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;true</span></div><div>&#xA0;</div><div><span class="name">func</span>(null);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;true</span></div><div>&#xA0;</div><div><span class="name">func</span>(NaN);</div><div><span class="comment">//&#xA0;=&gt;&#xA0;false</span></div><div>&#xA0;</div><div><span class="type">var</span>&#xA0;matchesFunc&#xA0;=&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">1</span>&#xA0;}<span class="delimiter">,</span>&#xA0;{&#xA0;<span class="string">&apos;a&apos;</span>:&#xA0;<span class="numeric">2</span>&#xA0;}])</div><div><span class="type">var</span>&#xA0;matchesPropertyFunc&#xA0;=&#xA0;_<span class="delimiter method">.</span><span class="name">overSome</span>([[<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">1</span>]<span class="delimiter">,</span>&#xA0;[<span class="string">&apos;a&apos;</span><span class="delimiter">,</span>&#xA0;<span class="numeric">2</span>]])</div></pre></div>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_.overSome - Added iteratee shorthand examples

Added two examples demonstrating automatic predicate conversion:

  var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])
  var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relevant PR lodash/lodash#4514

@jonchurch jonchurch marked this pull request as ready for review December 2, 2025 15:56
@falsyvalues falsyvalues self-requested a review December 2, 2025 16:13
@jonchurch jonchurch merged commit c808bc7 into lodash:master Dec 2, 2025
4 checks passed
@@ -4968,7 +4968,7 @@ <h4>Example</h4>
<h2><code>&#x201C;Seq&#x201D; Methods</code></h2>
<div>
<h3 id="lodash"><a href="#lodash" class="fa fa-link"></a><code>_(value)</code></h3>
<p><a href="https://github.com/lodash/lodash/blob/4.17.15/lodash.js#L1648">source</a></p>
[source](https://github.com/lodash/lodash/blob/4.17.21/lodash.js#L1690)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some markdown leftovers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants