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)) }
3 Réponses :
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);
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 .
Réponse courte: code en direct: https: // runkit. com / incorporé / iixibhqj5sg0 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);
Merci pour votre aide, c'est exactement ce dont j'ai besoin!
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;}) }