Home > other >  Javascript join not working on created array
Javascript join not working on created array

Time:10-11

Strange issue on join. It works on initial array, but not with filtered array. Tested also functions for string, but resultA is not string also.

What is wrong with the code:

const constants = [2, 2, 4, 2, 6, 4, 7, 8];
const stdFound = [];

// Makes list of indexes - positions from matching value 2 in constants
constants.filter(function(elem, index, array) {
  if (elem == (2)) {
    stdFound.push(index);
  }
});

//Makes new array from results by indexes found
const resultA = [constants.filter((x, i) => stdFound.includes(i))];
document.getElementById("resultA").innerHTML = resultA;
//Makes string by join
document.getElementById("resultJ").innerHTML = resultA.join(" x ");
<p> ARRAY : <span id="resultA"></span>
  <p> JOIN x : <span id="resultJ"></span></p>

Right now, this code results: ARRAY : 2,2,2 JOIN x : 2,2,2

so clearly, join is not working.

CodePudding user response:

filter() already returns an array. No need to wrap in this [].

console.log(resultA) will show that.

const constants = [2, 2, 4, 2, 6, 4, 7, 8];
const stdFound = [];

// Makes list of indexes - positions from matching value 2 in constants
constants.filter(function(elem, index, array) {
  if (elem == (2)) {
    stdFound.push(index);
  }
});

//Makes new array from results by indexes found
const resultA = constants.filter((x, i) => stdFound.includes(i));
document.getElementById("resultA").innerHTML = resultA;

//Makes string by join
document.getElementById("resultJ").innerHTML = resultA.join(" x ");
<p> ARRAY : <span id="resultA"></span>
  <p> JOIN x : <span id="resultJ"></span></p>

  • Related