Я искал и искал и не могу найти ответ на этот вопрос, поэтому, пожалуйста, примите мои извинения, если я буду глуп.Как полностью удалить пустой массив в javascript?
Я создаю приложение в node.js, которое использует файлы JSON в качестве конфигураций проекта. Я использую модуль «fs» для чтения файла JSON, который затем анализирую на объект Javascript. Затем я изменяю детали объекта перед использованием JSON.stringify, чтобы записать данные обратно в файл.
Моя проблема заключается в том, что мне нужно, чтобы удалить массив, а не просто очистить его, чтобы правильно показать данные на моем интерфейсе:
"floors": [
{
"floorName": "Grd Floor",
"floorNotes": "",
"floorPlan": "Buckley_Grd.jpg",
"floorWidth": "57.392",
"floorHeight": "20.776",
"runs": [
[], *<----I cannot delete these*
[] *<----only empty them*
[
{
"xCoOrd": "37.88235294117647",
"yCoOrd": "59.307359307359306",
"drawingType": "node"
},
{
"xCoOrd": "37.88235294117647",
"yCoOrd": "59.307359307359306",
"drawingType": "node"
},
{
"xCoOrd": "48.549019607843135",
"yCoOrd": "50",
"drawingType": "node"
}
] *<----I don't want to delete the elements in this array*
]
}
Я попытался:
.splice(0);
.filter(Boolean);
delete
Везде Я посмотрел, что люди, похоже, удивлены тем, что хотелось бы удалить неиспользуемый массив из памяти, что я и пытаюсь сделать. Возможно, существует способ подстроить объект, который игнорирует эти пустые массивы? Или, возможно, я делаю это совершенно неправильно?
Большое спасибо за предоставленные консультации.
EDIT: Мне следовало бы уточнить, что я не обязательно хочу удалять все элементы в массиве, поэтому redeclaring floors.runs = [], к сожалению, мне не поможет.
Я пробовал:
delete floors[floorID].runs[runID];
Это заменяет массив с нулем, который получает записываются в файл и губит мое чтение JSON.
Как вы попробовали 'delete'? – usr2564301
Вы пытались установить «пробежки» на «null»? – Seblor
Определите «удалить массив». Уточните, что именно вы пытались, и почему это не сработало для вас. – Oriol