如何按顺序循环访问数组,其中序列存储为另一个数组

How to iterate through an array sequentially, where the sequence is stored as another array

本文关键字:数组 存储 另一个 顺序 何按 循环 访问      更新时间:2023-09-26

这是这个想法:

var alphabet = ["A","B","C","D","E","F","G","H","I","J","K"]; 
var sequence1 = ["[i]","[i+2]","[i+2]","[i+1]","[i+4]"];

所以基本上我想使用序列"sequence1"遍历"字母表",这样返回将是:A, C, E, F, J.

我将有许多不同的序列,因此它们必须各自存储为自己的数组。

您似乎正在使用sequence1来描述如何从输出序列中的一个术语跳转到下一个术语,因此请尝试以下操作:

var alphabet = ["A","B","C","D","E","F","G","H","I","J","K"],
    sequence1 = [0,2,2,1,4],
    pos = 0,
    newSeq = [];
for (var i = 0, l = sequence1.length; i < l; i++) {
    pos += sequence1[i];
    if (alphabet[pos] !== undefined) {newSeq.push(alphabet[pos]);}
}

这将生成一个数组newSeq应该是您想要的。

演示:http://jsfiddle.net/BYossarian/uSmg5/

您可以将

序列存储为整数,然后循环访问alphabet,如下所示:

var alphabet  = ["A", "B", "C", ...];
var sequence1 = [0, 2, 2, 1, 4];
for (var i = 0; i < sequence1.length; i++) {
   alphabet[sequence1[i]+i];
}

请注意,对于要A, C, E, F, J的最终输出。应0, 1, 2, 2, 3序列,因为数组从索引 0 开始,而不是索引 1。