0
votes

Script Google Apps: Créez une nouvelle colonne de tableau en fonction de la valeur d'autres colonnes

J'ai un tableau que j'ai tiré d'une feuille Google. Il rapporte essentiellement sur la performance des postes Instagram du client. La première colonne de la matrice donne une URL d'image et la deuxième colonne donne une URL vidéo en fonction de si le poste était une image ou une vidéo. Une version tronquée de la matrice ressemblera à ceci:

for (i in data) {
    var row = data[i]
    if (row[1] === "") {
      newArray.push(row.splice(1,1))
    }
    else {
      newArray.push(row.splice(0,1))
    }


0 commentaires

3 Réponses :


1
votes

En supposant qu'aucune autre colonne n'est vide, vous pouvez utiliser Filtre et Carte :

const data = [ [ 'Media URL',
'Video thumbnail URL',    
'Engagement',
'Media impressions',
'Media reach' ],
  [ 'www.sampleimageurl.com/1',
'',
1328,
23359,
22234 ],
  [ '',
'www.samplevideourl.com/2',
683,
12542,
11743 ],
  [ 'www.sampleimageurl.com/3',
'',
1070,
15232,
11863 ]];

data[0][0] = "URL";
data[0][1] = "";
const output = data.map(row => row.filter(col => col !==""));
console.info(output);


1 commentaires

Remarque: le code ci-dessus ne fonctionnera pas sur le moteur ES5 obsolète. Pour utiliser le code, Mise à niveau vers un moteur V8 moderne plus rapide .



1
votes

Réponse courte: xxx pré>

code en direct: https: // runkit. com / incorporé / iixibhqj5sg0 p>

 Entrez la description de l'image ici p>

Code complet Snippet: P>

const A = [
[ 'Media URL',
'Video thumbnail URL',    
'Engagement',
'Media impressions',
'Media reach' ],
[ 'www.sampleimageurl.com/1',
'',
1328,
23359,
22234 ],
  [ '',
'www.samplevideourl.com/2',
683,
12542,
11743 ],
  [ 'www.sampleimageurl.com/3',
'',
1070,
15232,
11863 ]];

A.map(item => { item[0] = item[0] || item [1];  item.splice(1, 1); });
A[0][0]="URL";
console.log(A);


1 commentaires

Merci pour votre aide, c'est exactement ce dont j'ai besoin!



1
votes
function kreatiefMetKurk(){

 var array = [ [ 'Media URL',
'Video thumbnail URL',    
'Engagement',
'Media impressions',
'Media reach' ],
  [ 'www.sampleimageurl.com/1',
'',
1328,
23359,
22234 ],
  [ '',
'www.samplevideourl.com/2',
683,
12542,
11743 ],
  [ 'www.sampleimageurl.com/3',
'',
1070,
15232,
11863 ]]; 

array.map(function(row){row[1] = (row[0]+row[1]).trim(); 
                        row.shift(); 
                        return row;})

}

0 commentaires