// const import fs from 'fs';
function deleteEveryChangesArrayRecursively(data) {
  if (Array.isArray(data)) {
    data.forEach(item => deleteEveryChangesArrayRecursively(item));
  } else if (data && typeof data === 'object') {
    Object
      .entries(data)
      .forEach(([key, value]) => {
        if (key === 'changes' && Array.isArray(value)) {
          Reflect.deleteProperty(data, key);
        } else {
          deleteEveryChangesArrayRecursively(value);
        }
      });
  }
  return data;
}
/*function getDataFromJsonFile(path) {
  try {
    const json = fs
      .readFileSync(path, { encoding: 'utf8' });
    return { success: true, data: JSON.parse(json) };
  } catch (exception) {
    return { success: false, exception };
  }
}
function writeDataAsJsonFile(path, data) {
  try {
    fs.writeFileSync(path, JSON.stringify(data));
    return { success: true };
  } catch (exception) {
    return { success: false, exception };
  }
}*/
// mocking both, read and parse from file and stringify and write as file.
const getDataFromJsonFile = () => ({ data: structuredClone(mockData) });
const writeDataAsJsonFile = () => ({ success: true });
let { data = null, success, exception }
  = getDataFromJsonFile('./data.json');
if (data !== null) {
  ({ success, exception } = writeDataAsJsonFile(
    './data.json',
    deleteEveryChangesArrayRecursively(data),
  ));
}
console.log({ mockData, data, success, exception });
.as-console-wrapper { min-height: 100%!important; top: 0; }
<script>
  // mocking the parsed json.
  const mockData = {
    foo: [{
      changes: [0, 1, 2],
    }, {
      foobar: ['FOO', 'BAR'],
      changes: 'not an array',
    }, {
      foobaz: 'FOO BAZ',
      changes: [3, 4, 5],
    }, {
      foobiz: [{
        foobizbar: ['FOO', 'BIZ', 'BAR'],
        changes: 'not an array',
      }, {
        foobizbaz: 'FOO BIZ BAZ',
        changes: [6, 7, 8],
      }, {
        foobizbiz: 'FOO BIZ BIZ',
        changes: [9, 0, 1],
      }],
    }, {
      changes: [2, 3, 4],
    }, {
      foobar2: ['FOO', 'BAR', '2'],
      changes: 'not an array',
    }, {
      foobaz2: 'FOO BAZ 2',
      changes: [5, 6, 7],
    }, {
      foobiz2: [{
        foobiz2bar: ['FOO', 'BIZ', '2', 'BAR'],
        changes: 'not an array',
      }, {
        foobiz2baz: 'FOO BIZ 2 BAZ',
        changes: [8, 9, 0],
      }, {
        foobiz2biz: 'FOO BIZ 2 BIZ',
        changes: [1, 2, 3],
      }],
    }],
  };
</script>