преобразовать многомерный объект [key][key][key] => value

Как из такого массива:

введите сюда описание изображения

max => '20',
min => '0',
placeholder => 
  1 => 'value 1',
  2 => 'value 2',

сделать такой:

'[max]' => '20',
'[min]' => '0',
'[placeholder][1]' => 'value 1',
'[placeholder][2]' => 'value 2',

PS с квадратными скобками


Ответы (1 шт):

Автор решения: entense

    function convert(obj, prefix = '', res = { } ) {
      for (let key in obj) {
        if (!obj.hasOwnProperty(key))  continue; 
        if (typeof obj[key] === 'object' && obj[key] !== null) {
          convert(obj[key], prefix + '[' + key + ']', res);
        } else {
          res[prefix + '[' + key + ']'] = obj[key];
        }
      }
      return res;
    }
    var object = { max: 20, min: 0, placeholder: { 1: 'value_1', 2: 'value_2' }};
    console.log(convert(object));

→ Ссылка