nastya_zholudeva
@nastya_zholudeva

Как преобразовать в es5?

Как преобразовать в es5 конструкцию { childItems, ...item } из
arr.reduce((acc, { childItems, ...item }) => {
    path.push(item);


UPD: преобразовать в es5 пытаюсь вот это
  • Вопрос задан
  • 257 просмотров
Решения вопроса 4
Seasle
@Seasle Куратор тега JavaScript
Babel

UPD:
Ну, если в массиве всегда будут объекты, можно так:
var arr = [
    {
        name: 'Alex',
        data: {
            role: '1'
        },
        childItems: ['Bob', 'Alice']
    },
    {
        name: 'Kristine',
        data: {
            role: '2'
        },
        childItems: ['Kate', 'Morgan']
    }
];

function copy(object) {
    var root = {};

    Object.keys(object).forEach(function (key) {
        var branch = object[key];

        if (typeof branch === 'object' && !(branch instanceof Array)) {
            root[key] = copy(branch);
        } else {
            root[key] = branch;
        }
    });
    
    return root;
}

var newArr = arr.reduce(function (acc, entry) {
    var clonedEntry = copy(entry);
    delete(clonedEntry.childItems);
    
    acc.push(clonedEntry);
    
    return acc;
}, []);

console.log(arr); // [{ name: 'Alex', data: { role: '1' }, childItems: [ 'Bob', 'Alice' ] }, { name: 'Kristine', data: { role: '2' }, childItems: [ 'Kate', 'Morgan' ] }]
console.log(newArr); // [{ name: 'Alex', data: { role: '1' } }, { name: 'Kristine', data: { role: '2' } }]

Конечно, код не идеален, только для примера написал. По-хорошему, надо будет функцию copy сделать для разных типов.
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Комментировать
wapster92
@wapster92 Куратор тега JavaScript
Ответ написан
Комментировать
@Che603000
c 2011 javascript
const data ={
  childItems :'AAA',
  a:1,
  b:2,
  c:3
 }
const  { childItems, ...item }  = data;

console.log(childItems) // AAA
console.log(items) // {a:1, b2, c3}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы