我正在尝试从另一个数组的索引中提取一个数组的值。我正在使用 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/