首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单参数范围从重复范围值

单参数范围从重复范围值
EN

Stack Overflow用户
提问于 2020-05-20 01:42:36
回答 1查看 149关注 0票数 0

我有一个HTML文件,其中感兴趣的参数出现在方括号之间,但是这个范围在随后的方括号中以相同的名称重复,如下所示:

代码语言:javascript
复制
var jArray= {"2":["<span style='color:#c7b699'><b>May 1<\/b><\/span>","Percentage: <span>57%\n<\/span>","Interest Rate: <span>0.53","Amount Exchange: <span>150,<\/span>777,<\/span>695.16","Monthly Exchange: <span>370,<\/span>352.08","Interest Differentiation: <span>8.07","Interest RatePer: <span>0.54","Second Quarter","<b>Friday, May 1, 2020<\/b>","May","Phase: <span>Second Quarter<\/span>","May 1"],"0":["<b>April 29<\/b>","36%\n","Interest Rate: 0.52922522949925","Amount Exchange: 150701713.86852","Monthly Exchange: 378921.00811486","Interest Differentiation: 6.0176806272646","Interest RatePer: 0.52559281178633","Quarter Pre","April 29"],"1":["<b>April 30<\/b>","46%\n","Interest Rate: 0.52909124921306","Amount Exchange: 150739875.63889","Monthly Exchange: 374391.59013105","Interest Differentiation: 7.028645917145","Interest RatePer: 0.53195147367036","Quarter Pre","April 30"],"3":["<b>May 2<\/b>","68%\n","Interest Rate: 0.52882712965299","Amount Exchange: 150815161.77193","Monthly Exchange: 367050.8265867","Interest Differentiation: 9.1346986834112","Interest RatePer: 0.54259013649969","Second Quarter","May 2"],"4":["<b>May 3<\/b>","78%\n","Interest Rate: 0.52869706105934","Amount Exchange: 150852264.90232","Monthly Exchange: 364701.85696453","Interest Differentiation: 10.23252765695","Interest RatePer: 0.54608484792928","Second Quarter","May 3"]};

利率的参数是“百分比”、“利率”、“利率”的第一次出现。“约会”。在第一个方括号内。如何只将第一个方括号的内容导出到一个单独的文本文件中,同时忽略后面方括号中的所有其余条目?此外,“金额交换”实际上是150777695.16,而“每月交换”是370352.08。花括号{}中的条目没有新的行字符.我用的是Matlab。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-20 14:45:10

我已经设法将给定的银行数据转换成正确的格式,然后在.txt文件中的列中。但是,不可能用javascript遍历目录中的文件。为此,您必须使用服务器端语言,如php或python。但我不确定你是否有权限,这就是为什么我用普通的javascript来做的原因。代码中的注释应该足以描述代码。我使用了this stackoverflow post的下载功能。

代码语言:javascript
复制
var jArray = {
  "2": ["<span style='color:#c7b699'><b>May 1<\/b><\/span>", "Percentage: <span>57%\n<\/span>", "Interest Rate: <span>0.53", "Amount Exchange: <span>150,<\/span>777,<\/span>695.16", "Monthly Exchange: <span>370,<\/span>352.08",
    "Interest Differentiation: <span>8.07", "Interest RatePer: <span>0.54", "Second Quarter", "<b>Friday, May 1, 2020<\/b>", "May", "Phase: <span>Second Quarter<\/span>", "May 1"
  ],
  "0": ["<b>April 29<\/b>", "36%\n", "Interest Rate: 0.52922522949925", "Amount Exchange: 150701713.86852", "Monthly Exchange: 378921.00811486", "Interest Differentiation: 6.0176806272646", "Interest RatePer: 0.52559281178633", "Quarter Pre",
    "April 29"
  ],
  "1": ["<b>April 30<\/b>", "46%\n", "Interest Rate: 0.52909124921306", "Amount Exchange: 150739875.63889", "Monthly Exchange: 374391.59013105", "Interest Differentiation: 7.028645917145", "Interest RatePer: 0.53195147367036", "Quarter Pre",
    "April 30"
  ],
  "3": ["<b>May 2<\/b>", "68%\n", "Interest Rate: 0.52882712965299", "Amount Exchange: 150815161.77193", "Monthly Exchange: 367050.8265867", "Interest Differentiation: 9.1346986834112", "Interest RatePer: 0.54259013649969", "Second Quarter",
    "May 2"
  ],
  "4": ["<b>May 3<\/b>", "78%\n", "Interest Rate: 0.52869706105934", "Amount Exchange: 150852264.90232", "Monthly Exchange: 364701.85696453", "Interest Differentiation: 10.23252765695", "Interest RatePer: 0.54608484792928", "Second Quarter",
    "May 3"
  ]
};

//the data that you want from the array
let toLoad = ["Percentage", "Interest Rate", "Amount Exchange", "Monthly Exchange", "Interest Differentiation", "Interest RatePer", "Phase"];



function loadData(array) {
  if (array.length == 0) {
    return false;
  }

  var data = jArray["2"];
  var dataToFile = "";

  //remove the unnececary items from the array
  data.splice(0, 1);
  data.splice(6, 3);
  for (i = 0; i < data.length; i++) {
    //remove the "Interest Rate: " etc from every item in the array
    var toRemove = array[i] + ": ";
    //remove the html, remove the ",", remove the toRemove variable, remove the linebreaks "\n".
    data[i] = ((data[i]).replace(/<\/?[^>]+(>|$)/g, "").replace(/,/gi, "")).replace(toRemove, "").replace("\n", "");
  }

  dataToFile += toLoad.join(",") + ",Date\n";
  dataToFile += data.join(",") + "\n";



  download("bankData.txt", dataToFile);
}


function download(filename, text) {
  var element = document.createElement('a');
  element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
  element.setAttribute('download', filename);

  element.style.display = 'none';
  document.body.appendChild(element);

  element.click();

  document.body.removeChild(element);
}
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
</head>

<body>
  <button onclick="loadData(toLoad);">Download bankdata</button>


</body>

</html>

希望这能有所帮助!

编辑 Oke,我已经成功地将for循环转换成代码。我已经测试过了,应该能用。不过,你得自己做剩下的事,因为我还没有掌握Matlab的知识。

代码语言:javascript
复制
toLoad = ["Percentage", "Interest Rate", "Amount Exchange", "Monthly Exchange", "Interest Differentiation", "Interest RatePer", "Phase";];

data = ["<span style='color:#c7b699'><b>May 1<\/b><\/span>", "Percentage: <span>57%\n<\/span>", "Interest Rate: <span>0.53</span>", "Amount Exchange: <span>150,<\/span>777,<\/span>695.16", "Monthly Exchange: <span>370,<\/span>352.08", "Interest Differentiation: <span>8.07", "Interest RatePer: <span>0.54", "Second Quarter", "<b>Friday, May 1, 2020<\/b>", "May", "Phase: <span>Second Quarter<\/span>", "May 1";]

data = data([2:7]);

for a = 1:length(data) 
str = regexprep(data(1,a), '<.*?>','');
str = regexprep(str, '\\n', '');
str = regexprep(str, ',','');
data(1,a) = regexprep(str, toLoad(1,a) + ": ", '');
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61903717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档