亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

P5陣列相交

P5陣列相交

慕沐林林 2023-03-18 17:40:14
我試圖從一個數組的索引中提取另一個數組的值。我正在使用 loadStrings 加載兩個文本文件,它工作正常。我正在將該數據加載到兩個單獨的數組中。這兩個文本文件的長度不同,第一個包含三個值 - 行號,然后是 x 和 y 坐標。第二個文本文件包含我要從第一個文本文件中提取的數據的行號。僅落后兩個月的編碼時間,這是一項極其艱巨的任務,讓我完全陷入困境!到目前為止,我的(非?;镜模┐a如下:let data1;let data2;let parsedData1;let parsedData2;let combinedData;function preload() {  data1 = loadStrings('assets/data1.txt'); // load the data1 file  data2 = loadStrings('assets/data2.txt'); // load the data2 file  // console.log(data1);  // console.log(data2);}function setup() {  createCanvas(600, 400);   }function draw() {  noLoop();  background(0);    readData1()  readData2()}function readData1() {  parsedData1 = new Array(data1.length); // create an array for the parsed data  for (let i = 0; i < data1.length; i++) {    let parsedData1 = splitTokens(data1[i]);    // console.log(data1);   }}function readData2() {  let combinedData = concat(parsedData1, data2);  // console.log(combinedData);}我正在加載的文本文件包含以下內容:文本1:1 200 502 100 253 200 634 123 4565 124 2006 700 5007 600 5008 200 1219 300 100文本 2:358我正在尋找的結果是:3 150 1005 124 2008 200 121顯然可以使用循環來實現所需的結果,但我還沒有弄清楚如何!
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

既然你提到了循環,那么這里是如何使用循環來做到這一點:


如果您知道中的“索引號”data1.txt不會跳過任何數字:


for(let i = 0; i < data2.length; i++) {

  let index = data2[i];

  console.log(data1[index]);

}

否則,您可以像這樣使用嵌套循環:


for(let i = 0; i < data2.length; i++) {

  let index = data2[i];

  for(let j = 0; j < data1.length; j++)

  {

    let line = data1[j];

    let lineArr = line.split(" ");

    if(lineArr[0] == index) {

      console.log(line);

    }

  }

}


查看完整回答
反對 回復 2023-03-18
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

為了比較這兩個字符串,它們需要在數組(或類似的東西)中。


看一下:


  let text1 = document.getElementById("originaltext").innerHTML.trimRight();

  let compare1 = document.getElementById("comparevalues").innerHTML.trimRight();

  let a1 = text1.split("\n");

  console.log(a1);

  let c1 = compare1.split("\n");

  console.log(c1);

  const r1 = a1.filter(a => c1.includes(a.split(" ")[0]));

  console.log(r1);

<pre id="originaltext">

1 200 50

2 100 25

3 200 63

4 123 456

5 124 200

6 700 500

7 600 500

8 200 121

9 300 100

</pre>

<pre id="comparevalues">

3

5

8

</pre>

這將從示例中的 PRE 標記中讀取字符串(但會從您的原始文本字符串中讀?。┎⑺鼈冝D換為數組。如果第一個數字出現在第二個列表中并返回一個新的結果數組,則使用“includes”過濾第一個列表



查看完整回答
反對 回復 2023-03-18
  • 2 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號