How to merging/join two array with null value?

So I have two arrays:

Here’s the peserta array:

127: {nim: 1810531010, nama: 'Regita Annisa Agre', gender: 'Perempuan', tgl_lahir: '2000-12-19', fakultas: 'Ekonomi', …}
128: {nim: 1810522063, nama: 'Hamdal Al-Syahzi', gender: 'Laki-Laki', tgl_lahir: '2000-09-27', fakultas: 'Ekonomi', …}
129: {nim: 1810522044, nama: 'Rima Novriyanti', gender: 'Perempuan', tgl_lahir: '1999-10-01', fakultas: 'Ekonomi', …}
130: {nim: 1810522038, nama: 'Muhammad fakhri naufal', gender: 'Laki-Laki', tgl_lahir: '1999-02-19', fakultas: 'Ekonomi', …}
131: {nim: 1810522028, nama: 'Hidayatur Rahman Arza', gender: 'Laki-Laki', tgl_lahir: '2001-04-05', fakultas: 'Ekonomi', …}
132: {nim: 1810512031, nama: 'Yupinta kurnia', gender: 'Perempuan', tgl_lahir: '2000-09-02', fakultas: 'Ekonomi', …}
133: {nim: 1810112077, nama: 'dini yulianti', gender: 'Perempuan', tgl_lahir: '2020-07-12', fakultas: 'Hukum', …}
134: {nim: 1810112048, nama: 'Annisa indra', gender: 'Perempuan', tgl_lahir: '1999-10-30', fakultas: 'Hukum', …}
135: {nim: 1810111065, nama: 'Lina milenia', gender: 'Perempuan', tgl_lahir: '2000-06-29', fakultas: 'Hukum', …}

Here’s the penilaian1 array:

 0: {11: 30, 12: 30, 13: 25, 21: 72, 31: 57, nim: 1810112048, nama: 'Annisa indra'}
 1: {11: 20, 12: 20, 13: 10, 21: 75, 31: 57, nim: 1810522038, nama: 'Muhammad fakhri naufal'}

So when I joining the array using forEach and if statement, I expect result is:

 0: {11: 30, 12: 30, 13: 25, 21: 72, 31: 57, nim: 1810112048, nama: 'Annisa indra'}
 1: {11: 20, 12: 20, 13: 10, 21: 75, 31: 57, nim: 1810522038, nama: 'Muhammad fakhri naufal'}
 2: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810111065, nama: 'Lina milenia'}
 3: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810112077, nama: 'dini yulianti'}
 4: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810512031, nama: 'Yupinta kurnia'}
 5: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810522028, nama: 'Hidayatur Rahman Arza'}
 6: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810522044, nama: 'Rima Novriyanti'}
 7: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810522063, nama: 'Hamdal Al-Syahzi'}
 8: {11: 0, 12:0, 13:0, 21: 0, 31: 0, nim: 1810531010, nama: 'Regita Annisa Agre'}

I only join two array with exception data (nim, nama) on penilaian already available so ignoring duplicate, when peserta array data doesn’t available in penilaian it generate data with null grade (11, 12, 13, 21, 31). So how to merge two arrays while retains grade column (11, 21, 31) and add null value to grade column when peserta data not available on penilaian.

I think the script must be placed to watchEffect() in order to make algorithm works.

Here’s my Vue script coding:

setup() {

        const state = reactive({

            peserta1: [],

            penilaian1: [],

            subkriteria: [],

            result: [],

            merge: [],

        })

        onMounted(() => {

            axios

                .get('http://127.0.0.1:8000/api/penilaian1')

                .then((response) => {

                    state.penilaian1 = response.data.data

                    console.log(state.penilaian1)

                })

            axios

                .get('http://127.0.0.1:8000/api/penilaian1/table_sk1')

                .then((response) => {

                    state.subkriteria = response.data.data

                    console.log(state.subkriteria)

                })

            axios

                .get('http://127.0.0.1:8000/api/penilaian1/peserta1')

                .then((response) => {

                    state.peserta1 = response.data.data

                    console.log(state.peserta1)

                })

        })

        watchEffect(() => {

            state.penilaian1.forEach((dat) => {

                if (!state.result.find((r) => r.nim === dat.nim)) {

                    state.result.push({ nim: dat.nim, nama: dat.nama })

                }

            })

            state.penilaian1.forEach((dat) => {

                let res = state.result.find((r) => r.nim === dat.nim)

                res[dat.id_sk1] = dat.nilai

            })

            console.log(state.result)

        })

        return {

            state,

        }

Thank you