-2

I have two array arr1 and arr2 I want my output like 1,2,3,4... if my arr1 and arr2 contain same number but unfortunately i get only one match example if I put var arr1 = [1,2,3,4,5,6,7,8,9,0] & var arr2 = [ 1,2,3,4,5] then I want my output like:

1,2,3,4,5

        var i, j;
        var arr1 = new Array(5);
        var arr2 = new Array(5);

        for (i = 0; i <= 4; i++) {
            arr1[i] = parseInt(prompt("Enter The arr1 Element"));
        }

        for (i = 0; i <= 4; i++) {
            arr2[i] = parseInt(prompt("Enter The Arr2 Element"));
        }
    
            var k;
            var l;
            for (k = 0; k < arr1.length; k++) {
                for (l = 0; l < arr2.length; l++) {
                    if (arr1[k] == arr2[l]) {
                        document.getElementById("show").innerHTML = arr1[k];
                       
                    }
                    continue;
                }
            }
        
  
<html>

<head>
    <title>
        Common In Array[]
    </title>
</head>

<body>
   
    <p id="show"></p>
    
</body>

</html>
Arbaz kdr
  • 59
  • 1
  • 2
  • 11
  • Each time the loop goes it prints the value to the innerHTML of the div. But you overwriting it. So if you change = to += it will show your expected output – Rick Bronger Mar 01 '18 at 12:43
  • Thanks @Rick Bronger Its work well when i replace the `=` to with `+=` – Arbaz kdr Mar 01 '18 at 12:48

5 Answers5

0

then I want my output like: 1,2,3,4,5

You are only setting one value using assignment operator =.

document.getElementById("show").innerHTML = arr1[k];

You need to push your values in an array and then show them at once after separating them with ,

var output = [];
for (k = 0; k < arr1.length; k++) {
  for (l = 0; l < arr2.length; l++) {
    if (arr1[k] == arr2[l]) {
      output.push(arr1[k]);
    }
  }
}
document.getElementById("show").innerHTML = output.join(",");

Demo

var i, j;
var arr1 = new Array(5);
var arr2 = new Array(5);

for (i = 0; i <= 4; i++) {
  arr1[i] = parseInt(prompt("Enter The arr1 Element"));
}

for (i = 0; i <= 4; i++) {
  arr2[i] = parseInt(prompt("Enter The Arr2 Element"));
}

var k;
var l;
var output = [];
for (k = 0; k < arr1.length; k++) {
  for (l = 0; l < arr2.length; l++) {
    if (arr1[k] == arr2[l]) {
      output.push(arr1[k]);
    }
  }
}
document.getElementById("show").innerHTML = output.join(",");
<p id="show"></p>
gurvinder372
  • 66,980
  • 10
  • 72
  • 94
0

Check this out. You don't need very complex logic to acheive what you want

    var arr1 = [1,2,3,4,5,6,7,8,9,0];
    var arr2 = [ 1,2,3,4,5];

    let res = [];

    if(arr1.length >= arr2.length) {
      res = arr1.filter(a => arr2.find(o => o === a));
    } else {
      res = arr2.filter(a => arr1.find(o => o === a));
    }

    console.log(res)
    document.getElementById("show").innerHTML = res;
<p id="show"></p>
Ishwar Patil
  • 1,671
  • 3
  • 11
  • 19
0

try this:

var outputstring = "";
for (k = 0; k < arr1.length; k++) {
    for (l = 0; l < arr2.length; l++) {
        if (arr1[k] == arr2[l]) {
            outputstring += arr1[k] + ",";
        }
        continue;
    }
}
document.getElementById("show").innerHTML = outputstring;
gaback
  • 638
  • 1
  • 6
  • 13
0

You could use filter method and compare both arrays...

       
let arr1 = [1,2,3,4,5];
let arr2 = [1,2,3,6,7];
         
let result = arr1.filter((element)=>arr2.includes(element));   
console.log(result);
Renzo Calla
  • 7,486
  • 2
  • 22
  • 37
0

var array1 = [1,2,3,4,5,6,7,8,9,0];
var array2 = [1,2,3,4,5];

var results = array1.filter(function(item) {
    return array2.indexOf(item) !== -1;
});

console.log(results);
fyasir
  • 2,924
  • 2
  • 23
  • 36