是关于使用javascript将模块从一个文件导出到另一个文件

kkbh8khc  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(192)

下面是main.js的代码:

const fs = require('fs');
const readline = require("readline");
const stream = fs.createReadStream("./data.csv");
const rl = readline.createInterface({ input: stream });

let data = [];
let header = [];

rl.on("line", (row) => {
  if (header.length === 0) {
    // Memproses baris judul (header)
    header = row.split(";");
  } else {
    // Memproses baris data
    const rowData = row.split(";");
    const obj = {};

    // Membuat objek dari baris data
    for (let i = 0; i < header.length; i++) {
      obj[header[i]] = rowData[i];
    }

    // Menambahkan objek ke dalam array data
    data.push(obj);
  }
});

rl.on("close", () => {
  let hasil_mentah = [];

  for (let k = 0; k < data.length; k++) {
    const { Nama, Harga } = data[k];
    const obj_data = {
      Nama: Nama.toLowerCase(), // Mengubah nama menjadi huruf kecil
      Harga: parseInt(Harga) // Mengubah harga menjadi tipe data integer
    };
    hasil_mentah.push(obj_data);
  }

  console.log(hasil_mentah);
});

从csv文件中读取数据并给予如下输出:

[
  { Nama: 'kangkung', Harga: 3000 },
  { Nama: 'telur', Harga: 2500 },
  { Nama: 'cabai', Harga: 5000 },
  { Nama: 'bawang putih', Harga: 4000 },
  { Nama: 'bawang merah', Harga: 6000 },
  { Nama: 'tempe', Harga: 7000 },
  { Nama: 'tahu', Harga: 8000 }
]

但是如果我尝试在其他文件中运行它,使用以下代码:

const dataset = require('./main');

console.log(dataset);

结果是这样

{}
[
  { Nama: 'kangkung', Harga: 3000 },
  { Nama: 'telur', Harga: 2500 },
  { Nama: 'cabai', Harga: 5000 },
  { Nama: 'bawang putih', Harga: 4000 },
  { Nama: 'bawang merah', Harga: 6000 },
  { Nama: 'tempe', Harga: 7000 },
  { Nama: 'tahu', Harga: 8000 }
]

如何更改输出,使输出如下所示:

[
  { Nama: 'kangkung', Harga: 3000 },
  { Nama: 'telur', Harga: 2500 },
  { Nama: 'cabai', Harga: 5000 },
  { Nama: 'bawang putih', Harga: 4000 },
  { Nama: 'bawang merah', Harga: 6000 },
  { Nama: 'tempe', Harga: 7000 },
  { Nama: 'tahu', Harga: 8000 }
]

下一步,我想使用这个函数将其推送到新数组:

const prompt=require("prompt-sync")({sigint:true});

const dataset = require('./main');

var input = prompt("Masukkan Uang Anda: ");
var uang = parseInt(input);

for (let count = 0; count < dataset.length; count++) {
    const variabel = dataset[count];
    console.log("Nama : "+ variabel.nama);
    console.log("harga : "+ variabel.harga);

    var hasil_desimal = uang/variabel.harga;
    var hasil_bulat = Math.floor(hasil_desimal);

    console.log("jumlah dapat : "+ hasil_bulat);
    console.log('-----');
}
fwzugrvs

fwzugrvs1#

最后一个漫长的夜晚我唯一的问题,但不使用另一个文件,并在最后的功能,我把它放在

rl.on("close", () => {

现在main.js的完整代码如下所示

const fs = require('fs');
    const readline = require("readline");
    const stream = fs.createReadStream("./data.csv");
    const rl = readline.createInterface({ input: stream });
    const prompt=require("prompt-sync")({sigint:true});

    let data = [];
    let header = [];

    rl.on("line", (row) => {
      if (header.length === 0) {
        // Memproses baris judul (header)
        header = row.split(";");
      } else {
        // Memproses baris data
        const rowData = row.split(";");
        const obj = {};

        // Membuat objek dari baris data
        for (let i = 0; i < header.length; i++) {
          obj[header[i]] = rowData[i];
        }

        // Menambahkan objek ke dalam array data
        data.push(obj);
      }
    });

    rl.on("close", () => {
      let hasil_mentah = [];

      for (let k = 0; k < data.length; k++) {
        const { Nama, Harga } = data[k];
        const obj_data = {
          Nama: Nama.toLowerCase(), // Mengubah nama menjadi huruf kecil
          Harga: parseInt(Harga) // Mengubah harga menjadi tipe data integer
        };
        
        hasil_mentah.push(obj_data);
      }

      var input = prompt("Masukkan Uang Anda: ");
      var uang = parseInt(input);

      let hasil = [];

      for (let count = 0; count < hasil_mentah.length; count++) {
        const variabel = hasil_mentah[count];
        var hasil_desimal = uang/variabel.Harga;
        var hasil_bulat = Math.floor(hasil_desimal);

        const obj_jadi = {
          Nama: variabel.Nama,
          Harga: variabel.Harga,
          Jumlah: hasil_bulat
        };

        hasil.push(obj_jadi);
      }

      console.log(hasil);
    });

相关问题