Я пытаюсь найти способ взять строку и обновить значения, основываясь на новой поступающей строке. Строка представляет структуру таблицы и содержит имя столбца и тип данных столбца.
Для этого я пытаюсь преобразовать исходную строку и новую строку в массивы. Затем мне нужно объединить результаты, но обновить существующие столбцы с их новыми типами данных.
Например, в приведенном ниже примере я хочу вернуть 4 столбца, в которых col2 обновляется с varchar (30 до varchar (20).
var original_schema = 'col1 int,col2 varchar(30),col3 datetime2,col5 bit';
var new_schema = 'col1 int,col2 varchar(20),col3 datetime2,col4 int';
var arr_original_schema = original_schema.replace(/ /g,':').split(",");
var arr_new_schema = new_schema.replace(/ /g,':').split(",");
console.log(arr_original_schema);
console.log(arr_new_schema);
function arrayUnique(array) {
var a = array.concat();
for(var i=0; i<a.length; ++i) {
for(var j=i+1; j<a.length; ++j) {
//removed
if(a[i] === a[j])
a.splice(j--, 1);
}
}
return a;
}
var uniqueschema = arrayUnique(arr_original_schema.concat(arr_new_schema));
console.log(uniqueschema)
Ожидаемый результат: col1 int, col2 varchar (20), col3 datetime2, col4 int, col5 bit "