1
votes

Extrait JS de tableau multidimensionnel

Dans le code JavaScript ci-dessous, je ne parviens pas à obtenir le résultat attendu. s'il vous plaît aidez-moi à résoudre le code donné. Veuillez vérifier la sortie attendue.

Dans le code JavaScript ci-dessous, je ne parviens pas à obtenir le résultat attendu. s'il vous plaît aidez-moi à résoudre le code donné. Veuillez vérifier la sortie attendue.

/*
expected output will be
record:::
[ [5, 32, ['2020/11/14 13:29:30','-'],          
      [2, 32, ['2020/11/14 13:29:30','-'],
      [3, 32, ['2020/10/10 13:33:49','-'] ];  */
      
      
    $(document).ready(function(){
        var record = []; 
        var idarr = ['5','2','-','3','-'];  
        var jobidarr = [];      
        var userid = 32;
        var newlogtimedata = ["2020/11/14 13:29:30","-","2020/10/10 13:33:49","-"];
        var newlogtimedataupdate = [];  
        var logcnt = 1;
        var j=0;
        
        for(var i = 0; i < newlogtimedata.length; i++){
                if(newlogtimedata[i] != "-"){
                    newlogtimedataupdate.push(newlogtimedata[i]);
            }
        }
        
        for(var i = 0; i < idarr.length; i++){
            if(idarr[i] == "-"){
                logcnt++;
            }
            else{
                //for(var j = 0; j < idarr.length; j++){
                    record[[j]] = new Array();
                    record[[j]].push(parseInt(idarr[i]));
                    record[[++j]]= new Array();
                    /* record[[j]].push(JSON.stringify(parseInt(userid)));
                    record[[j]].push("-");
                    record[[++j]] = new Array();
                    record[[j]].push(newlogtimedataupdate[logcnt-1]);
                    record[[j]].push("-"); */
                    j++;
                //}
            }
          }
          console.log("record:::", record);
    }); 


2 commentaires

d'où vient '-' du tableau de dates?


Le considérer comme une valeur de hardcode


3 Réponses :


0
votes

Je crois que c'est le résultat souhaité, je ne sais pas trop ce qu'il est censé représenter:

var idarr = ['5', '2', '-', '3', '-'];
var userid = 32;
var newlogtimedata = [
  "2020/11/14 13:29:30", "-",
  "2020/10/10 13:33:49", "-"
];

const result = idarr.reduce((a, c, i) => {
  if (c === '-') return a;
  a.push([
    parseInt(c, 10),
    userid,
    [
      newlogtimedata[i] === '-' ? newlogtimedata[i - 1] : newlogtimedata[i],
       '-'
     ]
  ]);
  
  return a;
}, []);

console.log(result)


0 commentaires

0
votes

Essaye ça:

let myArray = [
    ['cake', 'cookie'],
    ['car', 'plane', 'train']
];

Pour accéder aux données dans des tableaux multidimensionnels, il ressemble à ceci myArray[2][1] .

Exemple: voici un tableau multidimensionnel avec des valeurs aléatoires:

for(var j = 0; j < idarr.length; j++){
    record.push([
        parseInt(idarr[i]),
        userid,
        [newlogtimedataupdate[logcnt - 1], '-']
    ]);
 }

Pour accéder aux éléments à l'intérieur de myArray , vous sélectionnez d'abord l'index de l'un des tableaux internes. Cela signifie que myArray[0] ressemble à: ['cake', 'cookie'] , et maintenant vous pouvez sélectionner les éléments à l'intérieur du tableau interne comme ceci: myArray[0][1] (qui est 'cookie' ).


0 commentaires

0
votes

Vous pouvez utiliser deux index pour les tableaux et choisir un élément tant qu'aucun sparator ne vient.

.as-console-wrapper { max-height: 100% !important; top: 0; }
let idarr = ['5', '2', '-', '3', '-'],
    userid = 32,
    newlogtimedata = ["2020/11/14 13:29:30", "-", "2020/10/10 13:33:49", "-"],
    SEPARATOR = '-',
    record = [],
    i = 0,
    j = 0;

while (i < idarr.length && j < newlogtimedata.length) {
    record.push([idarr[i], userid, [newlogtimedata[j], '-']]);
    if (idarr[i + 1] === SEPARATOR && newlogtimedata[j + 1] === SEPARATOR) {
        i += 2;
        j += 2;
        continue;
    }
    if (idarr[i + 1] !== SEPARATOR) i++;
    if (newlogtimedata[j + 1] !== SEPARATOR) j++;
}

console.log(record);


0 commentaires