Saturday, April 27, 2024
spot_imgspot_img

Topics

spot_img

Related Posts

Convert javascript multi-level object keys into snake_case

You can use a recursive approach to convert all keys of a multi-level object to snake_case. Here’s a JavaScript function that does that:

JavaScript
function convertKeysToSnakeCase(obj) {
  if (obj && typeof obj === 'object') {
    if (Array.isArray(obj)) {
      return obj.map(item => convertKeysToSnakeCase(item));
    } else {
      const snakeCaseObj = {};
      for (const key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          let snakeCaseKey = key
            .replace(/([a-z])([A-Z])/g, '$1_$2') // Insert underscore between lowercase and uppercase letters
            .toLowerCase();

          if (/^[A-Z]/.test(key)) {
            // If the word starts with a capital letter, remove the leading underscore
            snakeCaseKey = snakeCaseKey.substring(1);
          }

          snakeCaseObj[snakeCaseKey] = convertKeysToSnakeCase(obj[key]);
        }
      }
      return snakeCaseObj;
    }
  } else {
    return obj;
  }
}


// Example usage:
const inputObject = {
  firstName: 'John',
  lastName: 'Doe',
  addressInfo: {
    streetAddress: '123 Main St',
    cityInfo: {
      cityName: 'Cityville',
      postalCode: '12345'
    }
  },
  phoneNumbers: ['123-456-7890', '987-654-3210'],
  camelCaseKey: 'HelloWorld',
  mixedCaseKey: 'someMixedCaseValue'
};

const snakeCaseObject = convertKeysToSnakeCase(inputObject);
console.log(snakeCaseObject);

This function convertKeysToSnakeCase takes an object as input and recursively converts all keys to snake_case.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Popular Articles