使用集合中包含的索引值将项目推送到数组



假设我有一些空数组array1 = [], array2 = [], array3 = []

以及包含在双索引数组中的一些数据,例如this.data[row][cell]

我有一组整数newSet(),这些整数的大小可以可变,具体取决于数据以及在行中每个cell中找到的信息。有没有办法迭代集合,以便array1包含来自this.data[row][(SetValue1)]的所有值,array2包含来自this.data[row][(SetValue2)]的所有值等等?我正在考虑一个 for 循环迭代要开始的集合的值,但不确定这个问题的优雅解决方案是什么。

将数组放在另一个数组中,以便可以使用集合中的索引来引用相应的数组。

arrays = [array1, array2, array3];
var index = 0;
newSet().forEach((val) => arrays[index++].push(this.data[row][val]));

(这个答案是 C 尖锐的,但看看它并检查你是否可以把这个想法带到 javaScript (如果你打算从二维数组创建一个交错数组,这是我的解决方案:

public static int[][] MoveToJaggedArray(int[,] a)//defining a function
{
int row = a.GetLength(0);//number of rows
int Length = a.GetLength(1);//Length  width of the array
int[][] na = new int[row][];//setting an array of array

for(int i =0;i<row;i++)//running on each row
{
for (int k = 0; k < length; k++)//run on each cell
na[i][k] = a[i, k];//transferring value in array a in location row =i widthPlace =k to to array in location i in array na and within the array widthPlace = k 
}
return na;
}

最新更新