問題
私は実際にGoogleシートに入力されたデータである2次元配列を持っています。ユーザーによって定義されたロジックによってソートされます。2d配列の位置的ソート
目的は、この表の最後に新しい行を入力してから、それを位置順に並べ替えることです。ユーザーが以前のそれに入ったので、私は「ヨーロッパ」「アメリカ」の前に行くことを意味「位置によって」と言っ
。ここで
は、テスト用のサンプルのアレイである:
var data =
[
['Earth', 'Europe', 'Britain', 'London'],
['Earth', 'Europe', 'Britain', 'Manchester'],
['Earth', 'Europe', 'Britain', 'Liverpool'],
['Earth', 'Europe', 'France', 'Paris'],
['Earth', 'Europe', 'France', 'Lion'],
['Earth', 'Europe', 'Italy', 'Rome'],
['Earth', 'Europe', 'Italy', 'Milan'],
['Earth', 'Europe', 'Greece', 'Athenes'],
['Earth', 'Asia', 'China', 'Pekin'],
['Earth', 'Africa', 'Algeria', 'Algiers'],
['Earth', 'America', 'USA', 'Dallas'],
['Earth', 'America', 'USA', 'New York'],
['Earth', 'America', 'USA', 'Chicago'],
['Tatooine', 'Yulab', 'Putesh', 'ASU'],
['Tatooine', 'Yulab', 'Putesh', 'Niatirb'],
['Tatooine', 'Yulab', 'Zalip', 'Duantan'],
['Tatooine', 'Asia', 'Solo', 'Lion'],
['Tatooine', 'Asia', 'Solo', 'To'],
['Earth', 'America', 'USA', 'San Francisco'],
['Tatooine', 'Yulab', 'Koko', 'Traiwau'],
['Venus', 'Yoo', 'Van', 'Derzar'],
['Tatooine', 'Chendoo', 'org', 'Eccel']
];
、正しい結果の配列は次のとおりです。
/*
[ [Earth, Europe, Britain, London],
[Earth, Europe, Britain, Manchester],
[Earth, Europe, Britain, Liverpool],
[Earth, Europe, France, Paris],
[Earth, Europe, France, Lion],
[Earth, Europe, Italy, Rome],
[Earth, Europe, Italy, Milan],
[Earth, Europe, Greece, Athenes],
[Earth, Asia, China, Pekin],
[Earth, Africa, Algeria, Algiers],
[Earth, America, USA, Dallas],
[Earth, America, USA, New York],
[Earth, America, USA, Chicago],
[Earth, America, USA, San Francisco],
[Tatooine, Yulab, Putesh, ASU],
[Tatooine, Yulab, Putesh, Niatirb],
[Tatooine, Yulab, Zalip, Duantan],
[Tatooine, Yulab, Koko, Traiwau],
[Tatooine, Asia, Solo, Lion],
[Tatooine, Asia, Solo, To],
[Tatooine, Chendoo, org, Eccel],
[Venus, Yoo, Van, Derzar]
]
*/
私はこのためのスクリプトを使用したいです。私は、スクリプトの私の独自のバージョンを作った
マイソリューション
は、こちらを参照してください。
https://github.com/Max-Makhrov/positional-sorting/blob/master/main.js
アルゴリズムは最初から始まるグループを見つけるどのようにアルゴリズムが
の作品行:地球>ヨーロッパ>イギリス。次に、後のエントリでこのグループの一致を検索します。
以前のエントリに高いインデックスを割り当てることも考えました。
質問
質問:十分に速くソリューションを必要とする位置
- 以下のコード、:そこより良いアプローチがありますこのコードをシートで使用し、limits on script timeというコードを使用するためです。
@Luca、私は質問を編集し、適切な答えを識別することを制限されてきました。再開してください。私は正しい答えを持っていて、私の質問が他のユーザーに役立つことを願っています –