однако простой JS не позволяет так делать, возможно есть какие-либо библиотеки для этого или функция
Вполне себе позволяет, только используются для этого не массивы, а объекты
Объекты надо инициировать заранее, то есть в существующий объект можно добавить новый ключ, но если объект не существует, то и добавлять этот ключ некуда.
Пример:
//у нас есть пустой объект array = {}
//Мы делаем следующее:
array['window']['settings'] = { key: value };
//На деле происходит все так:
{
let temp = array['window']; // undefined
temp['settings'] = { key: value }; // Ошибка, у undefined не может быть полей
}
Формально и это можно обойти с помощью Proxy (не работает и никак не полифилится в старых браузерах, все ie а так же safari ниже 10 сразу отпадают)
Но делать так не хорошо, ибо в такой реализации если мы запросим
array['window']['settings']['other_key']
, то получим пустой объект, хотя ожидается undefined
Если Вас это не останавливает, могу накидать простенькую реализацию, дабы Вы сами смогли наступить на грабли плохого кода и научится на собственных ошибках