Не удается найти дубликаты должным образом при сравнении двух массивов - PullRequest
0 голосов
/ 30 января 2020

У меня есть два Array вопросов. Я должен сравнить, чтобы создать только при необходимости, в противном случае обновить.

Это мой код, который я имею:

const issueList = [
  "Ajout de google analytics",
  "Déployement en continue dev",
  "Déployement en continue préproduction",
  "Déployement en continue production",
  "Déployment ipa automatique sur app store",
  "Déployment apk automatique sur play store"
];

const existingIssueList = [
  "Déployement en continue production",
  "Déployement en continue préproduction",
  "List swipe web"
];

for (let i = 0; i < issueList.length; i += 1) {
  let issueFound = null;
  for (let j = 0; j < existingIssueList.length; j += 1) {
    if (issueList[i] === existingIssueList[j]) {
      issueFound = existingIssueList[j];
      break;
    }
  }
  
  // If issue was found, we do not need to create theissue
  let issue;
  if (issueFound) {
    issue = updateIssue({
      issue: issueFound,
    });
    console.log(`issue has been updated`);
  } else {
    issue = createIssue({
      issue: issueList[i],
    });
    console.log(`issue has been created`);
  }
}

function updateIssue(){}
function createIssue(){}

Я ожидаю найти дублированные значения и обновить их, где мне не удается?

Ответы [ 4 ]

0 голосов
/ 30 января 2020

const issueList = [
  "Déployement en continue dev",
  "Déployement en continue préproduction",
  "Déployement en continue production",
  "Déployment ipa automatique sur app store",
  "Déployment apk automatique sur play store"
];

const existingIssueList = [
  "Déployment apk automatique sur play store",
  "Déployment ipa automatique sur app store"
];

let issueFoundIndex = issueList.forEach(issue => {
    const existingIssueListIndex = existingIssueList.findIndex(x => x === issue);

    if(existingIssueListIndex !== -1){
      console.log('Found issue:' + existingIssueList[existingIssueListIndex]);
    }        

    const mutatedIssue = existingIssueListIndex !== -1
      ? updateIssue(existingIssueList[existingIssueListIndex])
      : createIssue(issue);
    console.log(mutatedIssue);
});

function updateIssue(issue){ return issue; }
function createIssue(issue){ return issue; }
0 голосов
/ 30 января 2020

Я добавил includes для удобства чтения. После регистрации, какая проблема создана / обновлена, похоже, что ваш код работает:

const issueList = [
  "Requetes de création de table commerçant",
  "Déployment apk automatique sur play store"
];

const existingIssueList = [
  "Déployment apk automatique sur play store",
  "Déployment ipa automatique sur app store",
  "Déployement en continue production",
  "Déployement en continue préproduction"
];

for (let i = 0; i < issueList.length; i += 1) {
  let issueFound = existingIssueList.includes(issueList[i]);
  
  // If issue was found, we do not need to create theissue
  let issue;
  if (issueFound) {
    issue = updateIssue({
      issue: issueFound,
    });
    console.log(`issue has been updated: ` + issueList[i]);
  } else {
    issue = createIssue({
      issue: issueList[i],
    });
    console.log(`issue has been created: ` + issueList[i]);
  }
}

function updateIssue(){}
function createIssue(){}
0 голосов
/ 30 января 2020

Лода sh может помочь, что-то вроде

_.filter(issueList, (val, i, iteratee) => _.includes(iteratee, val, i + 1));
0 голосов
/ 30 января 2020

Ваша логика c кажется очень сложной. Пожалуйста, проверьте, можете ли вы использовать приведенную ниже логи c:

    for (let i = 0; i < issueList.length; i += 1) {
       if(existingIssueList.indexOf(issueList[i]) > -1) {
          //Issue already exists
       }else {
         //Create Issue 
       }
    }

Надеюсь, это поможет вам.

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