javascript - P5阵列交集

标签 javascript arrays p5.js

我正在尝试从另一个数组的索引中提取一个数组的值。我正在使用 loadStrings 加载两个文本文件,这工作正常。我将该数据加载到两个单独的数组中。这两个文本文件的长度不同,第一个包含三个值 - 一个行号,然后是一个 x 和 y 坐标。第二个文本文件包含我要从第一个文本文件中提取的数据的行号。仅仅两个月的编码,我这是一项非常艰巨的任务,让我完全受阻!到目前为止,我的(非常基本的)代码如下:

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 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
文本2:
3
5
8
我正在寻求的结果是:
3 150 100
5 124 200
8 200 121
显然,使用循环可以达到预期的结果,但我还没有弄清楚如何!

最佳答案

既然你提到了循环,下面是如何使用循环:
如果您知道 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);
    }
  }
}

关于javascript - P5阵列交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63987353/

相关文章:

PHP JSON 解码(带方括号)

javascript - 在 Javascript 中使用渐变方向来引导笔触效果

javascript - p5.j​​s 无法读取数组的随机值

javascript - 在 P5.js 中创建元素对象

javascript - 从静止鼠标进入动画元素获取 mouseenter 事件

javascript - 将自定义 css 类添加到 ExtJS 4.0.7 面板标题

PHP/MySQL 更新顺序

ios - 尝试在 Swift 中访问嵌套字典数组中的键

javascript - typescript 将类型添加到库方法参数

javascript - 等待时循环替换 <div> 的内容