Скрипт ниже в настоящее время выдает:цикл через объекты внутри объекта с Object.assign
{
"title1": {
"0": "undefined"
},
"title2": "& three",
"title3": "& four"
}
Нужный выход существо:
{
"title1": {
"nested1": "one",
"nested2": "& two"
},
"title2": "& three ",
"title3": "& four"
}
Мой вопрос, что требуется, если заявление успешно прокрутите свойства [key] [innerKey] и передайте их через функцию кодирования и верните их в 'out'?
Я пытался решить его, используя цикл for в первой части инструкции if без успеха. Я полагаю, что она должна следовать логике вдоль линий:
- , если обр [ключ] является объектом, то
- выводить [ключ]:
- затем цикл через все свойства [ключ]
- и передавать их через функцию кодирования
- и вернуть их в «вне»
спасибо.
var arr = {
"title1": {
"nested1": "one",
"nested2": "& two"
},
"title2": "& three ",
"title3": "& four"
};
var encodedValues = Object.keys(arr).reduce(function(out,key,innerKey) {
if (typeof arr[key] == "object") {
return Object.assign(out, {[key]: {[innerKey]: encode(arr[key][innerKey])}})
} else {
return Object.assign(out, {[key]: encode(arr[key])})
}
}, {});
console.log(encodedValues)
Можете ли вы разместить ожидаемый результат? Я не понимаю, чего вы пытаетесь достичь ... – rpadovani
Да Конечно. Извините за отсутствие ясности. Просто обновил исходное сообщение. – fivedoor
Является ли глубина объекта всегда равным == 1? – markusthoemmes