Сравнивайте строковые символы по индексу и возвращайте несопоставленные символы с индексом - PullRequest
0 голосов
/ 31 марта 2020
const s1 = 'testuser1122@abc.com';
const s2 = 'testuser112@abc.com';

// some function
someFunction(s1, s2); // this should return 2->12 (character->position)

Мне нужно найти пропущенные символы из второй строки.

Код должен быть в ES6

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

const s1 = 'testuser1122@abc.com';
const s2 = 'testuser112@abc.com';

const s3 = 'testuser1122748@abcfg.com';
const s4 = 'testuser112@abc.com';

function diff(a, b){
let differences = [];
a.split("").map((c, i) => {
  if(b.split("")[i - differences.length] != c){
    differences.push({[c]: i});
  }
});
return differences;
}

console.log(diff(s1, s2));
console.log(diff(s3, s4));
0 голосов
/ 31 марта 2020

Используйте split для создания массива string 1. Выполните итерацию по нему и проверьте символ с тем же индексом в string 2, если они не совпадают, pu sh в массиве temp массив и удалите этот символ из массива string 1.

const s1 = 'testuser1122@abc.com';
const s2 = 'testuser112@abc.com';

let arr = s1.split('');

const missingChars = [];

for(let i = 0; i < arr.length; i++) {
  if(arr[i] !== s2[i]) {
    missingChars.push(Object.assign({}, {"char": arr[i]}));
    arr.splice(i, 1);
    i = i-1;
  }
}

console.log(missingChars);

const s1 = 'testuser11223@1abc.com';
const s2 = 'testuser112@abc.com';

let arr = s1.split('');

const missingChars = [];

for(let i = 0; i < arr.length; i++) {
  if(arr[i] !== s2[i]) {
    missingChars.push(Object.assign({}, {"char": arr[i]}));
    arr.splice(i, 1);
    i = i-1;
  }
}

console.log(missingChars);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...