Я бы использовал .filter
и .includes
-
const fileNames =
['one', 'two', 'three', 'three', 'five', 'six', 'ten']
const fileNamesWExt =
[ 'one.txt', 'two.txt', 'three.txt', 'ten.wmf', 'eleven.cgm' ]
const basename = filename =>
filename.split(/\.[^.]+$/)[0]
const finalArray =
fileNamesWExt.filter(f => ! fileNames.includes(basename(f)))
console.log(finalArray)
// [ 'eleven.cgm' ]
Обратите внимание на нашу реализацию basename
, которая Осторожно удалить только последнее расширение -
const basename = filename =>
filename.split(/\.[^.]+$/)[0]
console.log
( basename ("cat") // "cat"
, basename ("cat.dog") // "cat"
, basename ("cat.dog.eel") // "cat.dog"
, basename ("cat.dog.eel.fox") // "cat.dog.eel"
)
Если вы не можете использовать функции стрелок, вы, вероятно, используете довольно старый версия JavaScript. В этом случае вам также нужно будет заполнить .includes
-
Array.prototype.includes = function (x, init) {
for (var i = init || 0; i < this.length; i = i + 1)
if (this[i] === x)
return true;
return false;
};
var fileNames =
['one', 'two', 'three', 'three', 'five', 'six', 'ten'];
var fileNamesWExt =
[ 'one.txt', 'two.txt', 'three.txt', 'ten.wmf', 'eleven.cgm' ];
var basename = function (filename) {
return filename.split(/\.[^.]+$/)[0];
};
var finalArray =
fileNamesWExt.filter(function (f) {
return ! fileNames.includes(basename(f));
});
console.log(finalArray);
// [ 'eleven.cgm' ]
Примечание: можно хотеть включать обработку отказа в управление критическими данными.
Резервное копирование часто используется для копии Ваших данных, готовых быть восстановленными.
Обработка отказа и DRP восстанавливают сервис (не только данные), так как новый сервер доступен:
Для чистой стратегии резервного копирования я иду с ежедневным инкрементным резервным копированием и еженедельным полным резервным копированием.
Однако у нас также есть соединение SRDF, позволяющее репликацию данных реального времени с нашим центром удаленных данных, используемым для DRP.
Теперь, резервное копирование + обработка отказа + SRDF (для DRP) мог бы быть излишеством для данных разработки, но может быть выровнен по ширине для производственных данных (должен был восстановить сервис, работающий в производстве).
Таким образом для лучше совершенствования политик необходимо ясно проанализировать то, что представляют данные.