
Security News
GitHub Actions Pricing Whiplash: Self-Hosted Actions Billing Change Postponed
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.
deep-iterate
Advanced tools
Iterate through multidimensional arrays and arrays nested in objects e.g. "days.data.jobs[0]".
Iterate through multidimensional arrays and arrays nested in objects e.g. "days.workLog.jobs" where days and jobs are arrays and workLog is a nested object.
Iterating over a multidimensional array is synchronous, can be slow, and will block your application from doing any other processing whilst it's running. Please use sparingly.
Here's a simple example to get you started:
const deepIterate = require(`deep-iterate`);
const jobsPerDay = [{
dayName: `Monday`,
someObject: {
someProp: `abc`,
jobs: [87392, 12348, 47209, 94872],
},
}, {
dayName: `Tuesday`,
someObject: {
someProp: `def`,
jobs: [26348, 59272, 69390],
},
}, {
dayName: `Wednesday`,
someObject: {
someProp: `ghi`,
jobs: [18340],
},
}];
// Iterate over the given path, passing the values from the arrays "jobsPerDay" and "jobs" to the iteratee.
deepIterate(jobsPerDay, `someObject.jobs`, (day, job) => {
console.log(`${day.dayName}: ${job}`);
});
// Iterate over the given path, passing the values from every level to the iteratee.
deepIterate.withAllLevels(jobsPerDay, `someObject.jobs`, (day, someObject, job) => {
console.log(`${day.dayName}: (${someObject.someProp}) ${job}`);
});
A few things to take note of:
array1.array2, the iteratee will be called for every element in array2..forEach() on your array.Takes a multidimensional array and a period-delimited path (e.g. days.workLog.jobs) to iterate over. The iteratee will be called for every element in the most deeply nested array (e.g. jobs) and will be passed parameters for every array it encountered along the path. See the quick start example above or run the example with: node ./examples/basicExample.js.
Iteratee Signature: iteratee(array1, array2, ...arrayN)
Takes a multidimensional array and a period-delimited path (e.g. days.workLog.jobs) to iterate over. The iteratee will be called for every element in the most deeply nested array (e.g. jobs) and will be passed parameters for every object OR array it encountered along the path. See the quick start example above or run the example with: node ./examples/basicExample.js.
Iteratee Signature: iteratee(level1, level2, ...levelN)
FAQs
Iterate through multidimensional arrays and arrays nested in objects e.g. "days.data.jobs[0]".
We found that deep-iterate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
GitHub postponed a new billing model for self-hosted Actions after developer pushback, but moved forward with hosted runner price cuts on January 1.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.