I would like to check elements in Data array and display as "O" if it contains that Month and Number in a table. So for "Jan-1", Array1[0][0]
should be displayed as "O" but code below doesn't work. Can someone help me?
var Data = ["Jan-1", "Feb-4", "Apr-5"];
var Month= ["Jan", "Feb", "Mar", "Apr", "May"];
var Number = ["1", "2", "3", "4", "5"];
var Array1 = [[]];
for (var k = 0; k < Data.length; k++) {
var split = Data[k].split("-");
for (var z = 0; z < Month.length; z++) {
for (var s = 0; s < Number.length; s++) {
if (Month[z] == split[0] && period[s] == split[1]) {
Array1[z][s] = "O";
} else {
Array1[z][s] = "X";
}
}
}
}
number/month | Jan | Feb | Mar | Apr | May
------------------------------------------------------
1 | O | X | X | X | X
2 | X | X | X | X | X
3 | X | X | X | X | X
4 | X | O | X | X | X
5 | X | X | X | O | X
You should loop over Number
and Month
array, and each time check if the combination Month[j] + "-" + Number[i]
is in the Data
array:
var Data = ["Jan-1", "Feb-4", "Apr-5"];
var Month = ["Jan", "Feb", "Mar", "Apr", "May"];
var Number = ["1", "2", "3", "4", "5"];
var result = [];
for (var i = 0; i < Number.length; i++) { // foreach number
result[i] = []; // create a row for this current number
for (var j = 0; j <Month.length; j++) { // for each month
if (Data.indexOf(Month[j] + "-" + Number[i]) !== -1) { // check if the current combination (currentMonth-currentNumber) is in the Data array
result[i][j] = "O";
} else {
result[i][j] = "X";
}
}
}
result.forEach(function(row) {
console.log(row.join(" | "));
});