回答編集履歴
5
期待する挙動に適応
test
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
コメントで述べられた挙動ですと、以下のような手順で:
|
2
|
+
|
3
|
+
* 上に動かす場合、`s.options`を昇順にループ
|
4
|
+
* `s.optoins[i]` が選択済みであった場合
|
5
|
+
* `i`が`0`なら終了、そうでないなら`s.options[i]`と `s.options[i - 1]` を`s.insertBefore()`で入れ替える
|
6
|
+
* 下に動かす場合、`s.options`を降順にループ
|
7
|
+
* `s.options[i]` が選択済みであった場合
|
8
|
+
* `i` が `s.options.length - 1` なら終了、そうでないなら `s.options[i]`と `s.options[i + 1]` を`s.insertBefore()` で入れ替える
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
----
|
13
|
+
|
14
|
+
以下は期待する動作と違うボツ案です。
|
15
|
+
|
1
16
|
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが(1と3が選択されている場合は?)、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
2
17
|
|
3
18
|
1. `s.options` を配列化する `let opts = [...s.options];`
|
4
nits
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが(1と3が選択されている場合は?)、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
2
2
|
|
3
|
-
1. `s.options` を配列化する `[...s.options]`
|
3
|
+
1. `s.options` を配列化する `let opts = [...s.options];`
|
4
4
|
2. 上に集める場合、その配列を走査して未選択optionを順に`s.appendChild()`する。
|
5
5
|
3. 下に集める場合、その配列を走査して選択済みのoptionを順に`s.appendChild()`する。
|
6
6
|
|
3
手順の改善
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが(1と3が選択されている場合は?)、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
2
2
|
|
3
3
|
1. `s.options` を配列化する `[...s.options]`
|
4
|
+
2. 上に集める場合、その配列を走査して未選択optionを順に`s.appendChild()`する。
|
4
|
-
|
5
|
+
3. 下に集める場合、その配列を走査して選択済みのoptionを順に`s.appendChild()`する。
|
5
|
-
3. 上に集める場合、前者配列・後者配列の順ですべてを `s.appendChild()` する。下に集める場合、後者配列・前者配列の順ですべてを`s.appendChild()`する
|
6
6
|
|
2
文言
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
1
|
+
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが(1と3が選択されている場合は?)、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
2
2
|
|
3
3
|
1. `s.options` を配列化する `[...s.options]`
|
4
4
|
2. その配列から、`filter()` で「選択済みのoption配列」と「未選択のoption配列」を作る
|
1
文言
test
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
複数選択です
|
1
|
+
複数選択の場合にどういう挙動が欲しいのかちょっとピンとこないのですが、選択されたoptionを上か下に集めるという挙動なら、以下のような手順でどうでしょうか。
|
2
|
-
以下のような手順でどうでしょうか。
|
3
2
|
|
4
3
|
1. `s.options` を配列化する `[...s.options]`
|
5
4
|
2. その配列から、`filter()` で「選択済みのoption配列」と「未選択のoption配列」を作る
|