C'est ce que j'ai, actuellement, je suis capable de faire la différence. Mais comme vous le verrez dans les tableaux que je compare, je veux renvoyer 2 valeurs. C'est-à-dire que si je compare le premier tableau en a1 avec le premier tableau en a2, je devrais obtenir la différence, de même, si je compare le deuxième tableau en a1 avec le second en a2, je devrais obtenir la différence qui est de 4. En ce moment Je ne récupère qu'une valeur.

var findDivergence = function (a1, a2) {

  for (let q = 0; q < a1.length; q++) {
    var result = [];
    for (i = 0; i < a1[q].length; i++) {
      if (a1[q][i] !== a2[q][i]) {
        result.push(i);
        console.log(result.length)
      }
    }
  }
  return `Length is : ${result.length}`;

};

console.log(findDivergence([
    ["a", "b", "c", "d", "e", "f", "g"], 
    ["a", "b", "c", "d", "e", "f", "g"]
  ], 
  [
    ["a", "b", "d", "r", "e", "q", "g"], 
    ["a", "2", "d", "r", "e", "q", "g"]
  ]
));
0
Ola John Ajiboye 16 mars 2019 à 01:47

2 réponses

Meilleure réponse

Si j'ai bien compris, vous avez besoin de la variable principale ( desireResult ) pour les différences accumulées sous forme de tableaux imbriqués.

    var findDivergence = function (a1, a2) {
	var desiredResult = [];
  for (let q = 0; q < a1.length; q++) {
    var result = [];
    for (i = 0; i < a1[q].length; i++) {
      if (a1[q][i] !== a2[q][i]) {
        result.push(i);
        console.log(result.length)
      }
    } desiredResult.push(result);
  }
  return desiredResult;

};

console.log(findDivergence([["a", "b", "c", "d", "e", "f", "g"], ["a", "b", "c", "d", "e", "f", "g"]], [["a", "b", "d", "r", "e", "q", "g"], ["a", "2", "d", "r", "e", "q", "g"]]));
0
Ivan Ganchev 15 mars 2019 à 23:07

Comme ça?

var zip = function(a1, a2) {
  const len = a1.length < a2.length ? a2.length : a1.length;
  const result = [];
  for (let i = 0; i < len; i++) {
    result.push([a1[i], a2[i]]);
  }
  return result;
}

var findDivergence = function (a1, a2) {
  const result = [];
  for (const [aa, bb] of zip(a1, a2)) {
    let divergences = 0;
    for (const [a, b] of zip(aa, bb)) {
      if (a !== b) divergences++;
    }
    result.push(`Length is ${divergences}`);
  }
  return result;
};

console.log(findDivergence([["a", "b", "c", "d", "e", "f", "g"], ["a", "b", "c", "d", "e", "f", "g"]], [["a", "b", "d", "r", "e", "q", "g"], ["a", "2", "d", "r", "e", "q", "g"]]));
0
Doug Coburn 15 mars 2019 à 23:18