Не получается создать объект из двух массивов (Javascript)

Мне нужно создать объект из двух массивов newArr и newArr2. Я создаю этот объект в последнем then, и получаю значение undefined (первый скрин). Но если я создаю тестовый массив (arr1) который имеет структуру ['one', 'two', 'three'], то получается то что нужно (второй скрин).У массива newArr2 какая-то странная структура (третий скрин) и с ним не работают методы для массивов. Почему так происходит?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script>
    const secondPage = "page|279ca2067846c0060304271a0662e878f4f4011301eebfee0a|596563";
    Promise.all([
        fetch("https://ru.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8%20%D0%A1%D0%A1%D0%A1%D0%A0&cmlimit=500&format=json&prop=iwlinks&origin=*"),
        fetch(`https://ru.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B8%D0%BD%D0%BE%D0%BA%D0%BE%D0%BC%D0%B5%D0%B4%D0%B8%D0%B8%20%D0%A1%D0%A1%D0%A1%D0%A0&cmlimit=500&format=json&prop=iwlinks&origin=*&cmcontinue=${secondPage}`)
    ])
        .then (function(responses){ 
            return Promise.all(responses.map(function(response) {
                return response.json();
        }));
        }).then (function(data) {
            let fObject = data[0].query.categorymembers;
            let sObject = data[1].query.categorymembers;
            let fullObject =  fObject.concat(sObject);

        for(j = 0; j < fullObject.length; j++) {
            delete fullObject[j].pageid;
            delete fullObject[j].ns;
        }

    //CONVERT STRUCTURE OF OBJECT
    arr = fullObject.map(function(obj) {
        return obj.title;
    });

    const groupNames = arr => {
        const map = arr.reduce((acc, val) => {

            let char = val.charAt(0).toUpperCase();
            acc[char] = [].concat((acc[char] || []), val);
            return acc;
    }, {});
    const res = Object.keys(map).map(el => ({
        letter: el,
        names: map[el]
    }));
    return res;

    };

    //EDIT ARRAY
    arrEdited = groupNames(arr);
    let namesArrEdited = arrEdited[12].names;
    namesArrEdited.splice(41, 9);
    namesArrEdited.push('Кыш и два портфеля');
    arrEdited[0].names.push('4:0 в пользу Танечки');
    arrEdited.splice(1, 1);
    arrEdited.splice(19, 1);
    arrEdited.splice(30, 1);
    let newArr = arr;
    console.log(newArr[500]);
    let movieObjArr = [];
    Promise.all(
        newArr.map((title, index) => {
            return new Promise((resolve) => {
                fetch(`https://ru.wikipedia.org/w/api.php?action=query&prop=imageinfo&titles=${title}&format=json&iiprop=url&generator=images&origin=*`)
                    .then(response => {
                        return new Promise(() => {
                            response.json()
                                .then(movieObj => {
                                    movieObjArr[index] = movieObj;
                                    resolve();
                            })
                        })
                    })
            })
        })

    )
    .then(() => {
        newArr2 = [];
        movieObjArr.map((key, index) => {
            return new Promise((resolve) => {
                setTimeout(() => {
                    firstObjInMovieArr = key;
                    secondObjInMovieArr = firstObjInMovieArr.query;
                    thirdObjInMovieArr = secondObjInMovieArr.pages;
                    fourthObjInMovieArr =  Object.values(thirdObjInMovieArr);
                    fifthObjInMovieArr = fourthObjInMovieArr[0];
                    title = fifthObjInMovieArr.title;
                    movieImgUrlArr = fifthObjInMovieArr.imageinfo;
                    firstIndex = movieImgUrlArr[0];
                    newArr2.push(firstIndex.url);
                    resolve();
                    }, 500);
            });
        })
    })
    .then(() => {
        //const arr1 = ['one', 'two', 'three'];
        const obj = {};
        newArr.forEach((element, index) => {
        obj[element] = newArr2[index];
        });
        console.log(obj);
    });
});
</script>
</body>
</html>

Первый

Второй

Третий


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