J'ai besoin de lire à partir du fichier des chiffres
input.txt // [1,2,3] [4,5,6] 5 10
et en les attribuant à des variables
a = 1, 2, 3
b = 4, 5, 6
a et b doivent être des tableaux de nombres
c = 5
d = 10
C'est là que j'ai bloqué :

const fs = require('fs');

var [a, b, c, d] = fs.readFileSync('input.txt', 'utf8').split(' ');

console.log('a:' + a + '\nb:' + b + '\nc:' + c + '\nd:' + d);  

Console:

a:[1,2,3]
b:[4,5,6]
c:5
d:10

Toutes les variables sont des chaînes.
Que devrais-je faire ensuite? Dois-je analyser chaque variable séparément ou existe-t-il d'autres solutions sophistiquées ?
Merci d'avance!

1
VKorn 17 mars 2019 à 21:33

2 réponses

Meilleure réponse

Vous pouvez utiliser JSON.parse() avec Array.map() pour ça :

let input = "[1,2,3] [4,5,6] 5 10";

let [a,b,c,d] = input.split(" ").map(e => JSON.parse(e));

console.log(Array.isArray(a));
console.log(Array.isArray(b));
console.log(a);
console.log(b);
console.log(c);
console.log(d);
9
amrender singh 17 mars 2019 à 18:38

Vous pouvez le faire simplement en analysant les valeurs au format JSON comme suit :

var [a, b, c, d] = fs.readFileSync('input.txt', 'utf8').split(" ").map(a => JSON.parse(a));
1
Benjie Wheeler 17 mars 2019 à 18:38