#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);
??