のインデックス5
と の配列サイズを指定すると10
、次の配列が返されます。[5, 4, 6, 3, 7, 2, 8, 1, 9, 0]
コード:
function middleOutIterator(index, arraySize) {
var distances = [];
for (var i = 0; i < arraySize; i++) {
distances[i] = [ i, Math.abs(index - i) ];
}
distances.sort(sort);
for (var i = 0; i < distances.length; i++) {
distances[i] = distances[i][0];
}
return distances;
}
function sort(a, b) {
return a[1] > b[1];
}
基本的に、開始インデックスを渡すと、いずれかの方向に反復されます。
これは真の反復子ではなく、インデックスの配列を作成するだけなので、私が付けた名前は少し間違っていますが、この種の反復/並べ替えを何と呼びますか?
この機能は重要な領域ではなく、ボトルネックでもないため、最適化するつもりはありませんが、それと関連するアルゴリズムについてもっと読むことに興味があります。