Функция перезаписывает значение объекта значением из вложенного массива

#javascript

Вопрос:

Если в исходном объекте есть значение с буквой «s», оно переопределяется значением внутри массива, вложенным в этот объект.

Где же ошибка.

конечный результат (после вызова функции):

 {
  value: 's2', 
  test: [
    { value:'s2' }, 
    {}
  ]
}
 

ожидаемый результат:

 {
  value: 's1',
  test: [
    { value:'s2' }, 
    {}
  ]
}
 
 const sobj = {}
const simplify = (con, sobj) => {
  Object.keys(con).forEach(key => {

    let value = con[key];
    if (typeof value === "string" amp;amp; value.includes('s')) {
      sobj[key] = value;
    } else if (Array.isArray(value)) {
      value.forEach((p, i) => {
        sobj[key] = sobj[key] || [];
        sobj[key][i] = {}
        simplify(p, sobj[key][i]);
      });
    }

  });
}

const data = {
  value: 's1',
  test: [{
      value: 's2',
    },
    {
      value: 'test'
    }
  ]
}

simplify(data, sobj)

console.log({ data, sobj }); 

Комментарии:

1. Могу ли я узнать, какова цель кода?

2. каков ожидаемый результат? что ты получаешь?

3. В чем вопрос?

4. ожидаемый результат {значение: ‘s1′, тест: [{значение:’s2’}, {}]}, но он приходит как {значение: ‘s2′, тест: [{значение:’s2’}, {}]}

5. Каковы входные данные? simplify(data, sobj); ??