Я использую lodash для манипулирования объектом JSON. Я не против использования Vanilla JS, но пока я работаю над PoC, я просто ищу самое быстрое решение для тестирования.
Итак, вот проблема, с которой я сталкиваюсь: я хочу иметь возможность легко push
элемент массива в любом месте объекта, и он должен автоматически создать все недостающие узлы, включая последний массив.
Например, допустим, у меня есть пустой объект, и я хотел бы создать функцию, которая может заполнять мой объект правильными значениями, например:
let dl = {};
customPush(dl, 'a.b', { c: 3, d: 4 });
// or
customPush(dl, ['a', 'b'], { c: 3, d: 4 });
Должно создать:
dl = {
a: {
b: [{
c: 3,
d: 4
}]
}
}
Это все, что я пытался, но никто из них не работает:
function customPush(obj, path, item) {
// This is just assign the item to the path, not pushing to a new array
_.set(dl, path, item);
// This one is not doing anything visible
_.get(dl, path, []).push(item);
// Pushing in this one doesn't work with a path like 'a.b'
if (_.has(dl, path)) {
dl.path.push(item);
} else {
_.set(dl, path, [item]);
}
// Any idea?
...
}
Большое спасибо за вашу помощь.