How to use the forOwn function from lodash

Find comprehensive JavaScript lodash.forOwn code examples handpicked from public code repositorys.

lodash.forOwn is a function provided by the Lodash library that iterates over the own enumerable properties of an object, invoking a function for each property.

2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
* @param {Function} [callback=identity] The function called per iteration.
* @param {*} [thisArg] The `this` binding of `callback`.
* @returns {Object} Returns `object`.
* @example
*
* _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {
*   console.log(key);
* });
* // => logs '0', '1', and 'length' (property order is not guaranteed across environments)
*/
fork icon73
star icon711
watch icon29

92
93
94
95
96
97
98
99
100
101
// copy README
fs.copyFileSync(path.join(rootpath, 'README.md'), path.join(buildpath, 'README.md'));

// create all function files
const template = `module.exports = require('./aigle')`;
_.forOwn(Aigle, (func, key) => {
  if (!_.isFunction(func) || /Error$|^Aigle$/.test(key)) {
    return;
  }
  const file = `${template}.${key};`;
fork icon16
star icon330
watch icon8

+ 3 other calls in file

How does lodash.forOwn work?

lodash.forOwn is a function provided by the Lodash library that can be used to iterate over the own enumerable properties of an object, invoking a function for each property.

When called, lodash.forOwn takes two arguments: the object to iterate over, and a function to invoke for each property. The function is passed two arguments: the value of the current property, and the key of the current property.

lodash.forOwn iterates over the own enumerable properties of the object in the order they were defined. For each property, the provided function is called with the property's value and key as arguments. If the function returns false at any point, the iteration is terminated early.

Here is an example of using lodash.forOwn to iterate over the properties of an object:

javascript
const _ = require('lodash'); const obj = { name: 'Alice', age: 30, city: 'San Francisco' }; _.forOwn(obj, (value, key) => { console.log(`${key}: ${value}`); });

In this example, we use the lodash.forOwn method to iterate over the properties of an object. We define an object obj with several properties, and then call lodash.forOwn with this object and a function that logs each property and its value to the console. The output of running this code would be:

makefile
name: Alice age: 30 city: San Francisco

By using lodash.forOwn and other methods provided by the Lodash library, developers can write more concise and readable code for manipulating and iterating over objects and arrays in JavaScript.

138
139
140
141
142
143
144
145
146
147
module.exports.fnull               = _.fnull;
module.exports.forEach             = _.forEach;
module.exports.forEachRight        = _.forEachRight;
module.exports.forIn               = _.forIn;
module.exports.forInRight          = _.forInRight;
module.exports.forOwn              = _.forOwn;
module.exports.forOwnRight         = _.forOwnRight;
module.exports.frequencies         = _.frequencies;
module.exports.fromPairs           = _.fromPairs;
module.exports.fromQuery           = _.fromQuery;
fork icon19
star icon122
watch icon0

+ 92 other calls in file

284
285
286
287
288
289
290
291
292
293
294
295


    return resultObj;
};


Utils.reflectKeys = function (obj) {
    return _.forOwn(obj, (value, key, object) => {
        object[key] = key;
    });
};

fork icon14
star icon71
watch icon0

Ai Example

1
2
3
4
5
6
7
8
9
10
11
const _ = require("lodash");

const obj = {
  name: "Alice",
  age: 30,
  city: "San Francisco",
};

_.forOwn(obj, (value, key) => {
  console.log(`${key}: ${value}`);
});

In this example, we use the lodash.forOwn method to iterate over the properties of an object. We define an object obj with several properties, and then call lodash.forOwn with this object and a function that logs each property and its value to the console. The output of running this code would be: makefile Copy code

19
20
21
22
23
24
25
26
27
28
29
}
const emptyFilterQuery = {}


function generateConfigString (metaFiltersArray) {
  var configArray = {}
  _.forOwn(metaFiltersArray, function (value, key) {
    const allowedMetadata = value[0]
    const blackListedMetadata = value[1]
    if ((allowedMetadata && allowedMetadata.length > 0) && (blackListedMetadata && blackListedMetadata.length > 0)) {
      configArray[key] = _.difference(allowedMetadata, blackListedMetadata)
fork icon71
star icon3
watch icon9

335
336
337
338
339
340
341
342
343
344
    if(field.value) field.value = Helper.ParseMultiLine(field.value);
  });
});
while (foundinheritance) {
  foundinheritance = false;
  _.forOwn(this.Models, function (model) {
    if ('inherits' in model) {
      foundinheritance = true;
      var curmodelid = _this.resolveModelID(model.id);
      var parentmodel = _this.getModel(null,model.inherits,model,{ ignore: [curmodelid] });
fork icon5
star icon5
watch icon2

+ 12 other calls in file

162
163
164
165
166
167
168
169
170
171
 * @param picker - see lodash docs for _.pick
 */
moveProperties(source, target, picker) {
    let properties = _.pick(source, picker);
    _.merge(target, properties);
    _.forOwn(properties, (val, key) => delete source[key]);
},

/**
 * Pulls properties from @source by running @picker on source. Matched properties are removed from @source
fork icon1
star icon0
watch icon6

+ 15 other calls in file

641
642
643
644
645
646
647
648
649
650
651
652
653
// => Logs 'a' then 'b'.


const forInRight = _.forInRight({ 'a': 1, 'b': 2 }, (value, key) => console.log(key));
// => Logs 'b' then 'a'.


const forOwn = _.forOwn({ 'a': 1, 'b': 2 }, (value, key) => console.log(key));
// => Logs 'a' then 'b'.


const forOwnRight = _.forOwnRight({ 'a': 1, 'b': 2 }, (value, key) => console.log(key));
// => Logs 'b' then 'a'.
fork icon0
star icon4
watch icon0

+ 15 other calls in file

120
121
122
123
124
125
126
127
128
129
  this.builderOptions = options
  return this
}

build() {
  _.forOwn(this.models, (modelData) => {
    modelData.fields = jsonSchemaUtils.jsonSchemaToGraphQLFields(modelData.modelClass.$graphQlJsonSchema, {
      include: modelData.opt.include,
      exclude: modelData.opt.exclude,
      typeNamePrefix: utils.typeNameForModel(modelData.modelClass),
fork icon0
star icon3
watch icon2

+ 2 other calls in file

137
138
139
140
141
142
143
144
145
146
147
148
149




// https://stackoverflow.com/a/26202058/7305269
function pruneObject(obj) {
  return function prune(current) {
    _.forOwn(current, function (value, key) {
      if (_.isUndefined(value) || _.isNull(value) || _.isNaN(value) ||
        (_.isObject(value) && _.isEmpty(prune(value)))) {


        delete current[key];
fork icon0
star icon2
watch icon2

+ 4 other calls in file

556
557
558
559
560
561
562
563
564
565
    common.render_error(res, req, req.i18n.__('Document not found'), req.params.conn);
    return;
}

var images = [];
_.forOwn(result.doc, function (value, key) {
    if (value) {
        if (value.toString().substring(0, 10) === 'data:image') {
            images.push({ 'field': key, 'src': value });
        }
fork icon0
star icon0
watch icon1

+ 5 other calls in file

36
37
38
39
40
41
42
43
44
45
46
  callback(params);
};


function pruneEmpty(obj, showNull) {
  return (function prune(current) {
    lodash.forOwn(current, function (value, key) {
      if (
        lodash.isUndefined(value) ||
        lodash.isNull(value) ||
        lodash.isNaN(value) ||
fork icon0
star icon0
watch icon1

+ 2 other calls in file

61
62
63
64
65
66
67
68
69
70
71
 * @template O
 * @param {O} obj
 * @returns {O}
 */
function deepFreeze (obj) {
  _.forOwn(obj, Object.freeze)
  return Object.freeze(obj)
}


/**
fork icon0
star icon0
watch icon1

+ 2 other calls in file

232
233
234
235
236
237
238
239
240
241
} else {
  fields[fieldKey] = fieldVal;
}

const errors = [];
_.forOwn(fields, (value, field) => {
  errors.push(new sequelizeErrors.ValidationErrorItem(
    this.getUniqueConstraintErrorMessage(field),
    'unique violation', // sequelizeErrors.ValidationErrorItem.Origins.DB,
    field,
fork icon0
star icon0
watch icon420

+ 5 other calls in file

32
33
34
35
36
37
38
39
40
41
42
    get enumName() { return this.enumName_ || this.name_; }
}


// Rename properties and keep `original` for use with setters and getters
_.forOwn(cocoaConventions, function (properties, kind) {
    _.forOwn(properties, function (newConvention, oldName) {
        let conventionOverride = new ConventionOverride(newConvention);
        let property = spec[kind][oldName];
        
        if (property) {
fork icon0
star icon0
watch icon0

+ 3 other calls in file

520
521
522
523
524
525
526
527
528
529
// console.log("print from last in case forInRight");
// lodash.forInRight(new foo(), (value, key) => {
//   console.log(value);
// });
// console.log("forOwn");
// lodash.forOwn(new foo(), (value, key) => {
//   console.log(value);
// });
// lodash.forOwnRight(new foo(), (value, key) => {
//   console.log(key);
fork icon0
star icon0
watch icon0

+ 4 other calls in file

130
131
132
133
134
135
136
137
138
  }
});

if (result.extended) {
  info.push({label: '------------', value: ''});
  _.forOwn(result.extended, function(value, key) {
     info.push({ label: key, value: value });
  });
}
fork icon0
star icon0
watch icon0

39
40
41
42
43
44
45
46
47
48
})

const categoryLists = new Promise((resolve, reject) => {
  const template = path.resolve('./src/templates/PostCategoryTemplate/index.jsx')

  _.forOwn(CategoryLinks, function(links, languageId) {
    _.each(links, categoryLink => {
      createPage({
        path: categoryLink.path,
        component: template,
fork icon0
star icon0
watch icon0

92
93
94
95
96
97
98
99
100
101
  })
});

// Add FP alias and remapped module paths.
_.each([mapping.aliasToReal, mapping.remap], function(data) {
  _.forOwn(data, function(realName, alias) {
    var modulePath = path.join(target, alias + '.js');
    if (!_.startsWith(alias, '_') &&
        !_.includes(modulePaths, modulePath)) {
      modulePaths.push(modulePath);
fork icon0
star icon0
watch icon0

122
123
124
125
126
127
128
129
130
131
  })
});

// Add FP alias and remapped module paths.
_.each([mapping.aliasToReal, mapping.remap], data => {
  _.forOwn(data, (realName, alias) => {
    const modulePath = path.join(target, alias + '.js');
    if (!_.includes(modulePaths, modulePath)) {
      modulePaths.push(modulePath);
    }
fork icon0
star icon0
watch icon0

Other functions in lodash

Sorted by popularity

function icon

lodash.get is the most popular function in lodash (7670 examples)