簡體   English   中英

計算nodejs中Array中的項目數

[英]Count the number of items in Array in nodejs

我有將近 2GB 的大文件,文本還包括很多國家,有時甚至更多。 我應該創建腳本,該腳本將從文件中寫入所有國家/地區的標准輸出,並且還將顯示使用國家/地區名稱的次數。 例如,如果文件代碼中有五次德國應該向我們展示:德國:5(類似的東西)

const fs = require("fs");
readline = require("readline");
stream = require("stream");

const filename = process.argv[2];
const instream = fs.createReadStream(filename);
const outstream = new stream();
outstream.readable = true;
outstream.writable = true;

const rl = readline.createInterface({
  input: instream,
  output: outstream,
  terminal: false,
});
rl.on("line", function (line) {
  const [country] = line.split(",", 1);
  Str = country;
  var obj = new Object();

  for (var i = 0; i < Str.length; i++) {
    if (obj[Str] != null) {
      obj[Str] += 1;
    } else {
      obj[Str] = 1;
    }
  }
  console.log(obj);
});

我寫了這個,但它顯示了單詞中的字母數。 謝謝(下載文件的鏈接在評論中)

以下是部分文字:

美國,2001,dinner-and-a-murder-mystery-games,retail,linkedin.com/company/dinner-and-a-murder-mystery-games,"",晚餐和謀殺之謎游戲,田納西州,1 -10,dinnerandamurder.com 荷蘭,2013,jennifer-campbell,管理咨詢,linkedin.com/company/jennifer-campbell,houten,jennifer campbell,utrecht,1-10,jennifercampbell.Z4D236D9A2D102C5FE6AD1C50DA4BEC50,美國,”” ,營銷和廣告,linkedin.com/company/imtec-corp,ardmore,imtec corp italy,1977,bo.ma-s.r.l.,研究,linkedin.com/company/bo.ma-s.r。 l.

您的問題可能是,您有一個變量“country”,其中包含國家作為字符串,然后將其存儲到 Str 並執行以下操作:

"for (var i = 0; i < Str.length; i++) {

這會遍歷 stream 中的每個字符。 此外,您需要在回調之外定義“obj”,否則它會為每一行重新創建。 試試看嘛:

var obj = {};
rl.on("line", function (line) {
  const [country] = line.split(",", 1);

  if (obj[country]) {
    obj[country]++;
  } else {
    obj[country] = 1;
  }
  console.log(obj);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM