teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

補足

2019/06/19 08:49

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -30,9 +30,9 @@
30
30
  const data = sheet.getDataRange().getValues();
31
31
 
32
32
  // 連泊情報を整理
33
- const info = data.map(function(row, idx) {
33
+ const info = data.map(function(row) {
34
34
  // D列の値を取得してオブジェクト化
35
- const obj = {}
35
+ const obj = {};
36
36
  row[3].replace(/] [\/g, KvSeparater)
37
37
  .replace(/] [/g, DataSeparater)
38
38
  .replace(/[/g,'')
@@ -58,4 +58,26 @@
58
58
 
59
59
  sheet.getRange(2, 5, dataSet.length, dataSet[0].length).setValues(dataSet);
60
60
  }
61
+ ```
62
+
63
+ #コメントに対する追記
64
+ > どうして'|'や':'でreplaceしているのか
65
+
66
+ 確かに無駄にわかりにくくしてるかも。
67
+ 下記のほうがシンプルですね。
68
+ ```
69
+ const info = data.map(function(row) {
70
+ // D列の値を取得してオブジェクト化
71
+ const obj = {};
72
+ const pairs = row[3].replace(/^[/,'')
73
+ .replace(/]$/,'')
74
+ .replace(/\/g,'')
75
+ .split('] [');
76
+
77
+ for(var i = 0; i < pairs.length; i++) {
78
+ obj[pairs[i++]] = pairs[i];
79
+ }
80
+
81
+ return obj;
82
+ });
61
83
  ```

4

見やすく

2019/06/19 08:49

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -2,19 +2,19 @@
2
2
  > 第二行に[]で囲まれた日付
3
3
 
4
4
  これはない想定(2行目からデータ群)でくんでます。
5
- |D|E|F|G|H|I|J|
5
+ |行数|D|E|F|G|H|I|J|
6
- |:--|:--|:--|:--|:--|:--|:--|
6
+ |--:|:--|:--|:--|:--|:--|:--|:--|
7
- |連泊情報|2019-06-11|2019-06-12|2019-06-13|2019-06-14|2019-06-15|2019-06-16|
7
+ |1|連泊情報|2019-06-11|2019-06-12|2019-06-13|2019-06-14|2019-06-15|2019-06-16|
8
- |[2019-06-06] [\1,000]|||||||
8
+ |2|[2019-06-06] [\1,000]|||||||
9
- |[2019-06-05] [\2,000] [2019-06-06] [\2,100] [2019-06-07] [\2,200]|||||||
9
+ |3|[2019-06-05] [\2,000] [2019-06-06] [\2,100] [2019-06-07] [\2,200]|||||||
10
- |[2019-06-09] [\3,000] [2019-06-10] [\3,100] [2019-06-11] [\3,200]|||||||
10
+ |4|[2019-06-09] [\3,000] [2019-06-10] [\3,100] [2019-06-11] [\3,200]|||||||
11
- |[2019-06-10] [\4,000] [2019-06-11] [\4,100] [2019-06-12] [\4,200]|||||||
11
+ |5|[2019-06-10] [\4,000] [2019-06-11] [\4,100] [2019-06-12] [\4,200]|||||||
12
- |[2019-06-12] [\5,000]|||||||
12
+ |6|[2019-06-12] [\5,000]|||||||
13
- |[2019-06-12] [\6,000] [2019-06-13] [\6,100] [2019-06-14] [\6,200]|||||||
13
+ |7|[2019-06-12] [\6,000] [2019-06-13] [\6,100] [2019-06-14] [\6,200]|||||||
14
- |[2019-06-15] [\7,000] [2019-06-16] [\7,100] [2019-06-17] [\7,200]|||||||
14
+ |8|[2019-06-15] [\7,000] [2019-06-16] [\7,100] [2019-06-17] [\7,200]|||||||
15
- |[2019-06-16] [\8,000] [2019-06-17] [\8,100] [2019-06-18] [\8,200]|||||||
15
+ |9|[2019-06-16] [\8,000] [2019-06-17] [\8,100] [2019-06-18] [\8,200]|||||||
16
- |[2019-06-17] [\9,000] [2019-06-18] [\9,100] [2019-06-19] [\9,200]|||||||
16
+ |10|[2019-06-17] [\9,000] [2019-06-18] [\9,100] [2019-06-19] [\9,200]|||||||
17
- |[2019-06-17] [\10,000]|||||||
17
+ |11|[2019-06-17] [\10,000]|||||||
18
18
 
19
19
  途中日付計算が面倒でMomentを使いました。
20
20
  このらへんを参考にどうぞ。

3

表を提示

2019/06/18 04:12

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -2,6 +2,19 @@
2
2
  > 第二行に[]で囲まれた日付
3
3
 
4
4
  これはない想定(2行目からデータ群)でくんでます。
5
+ |D|E|F|G|H|I|J|
6
+ |:--|:--|:--|:--|:--|:--|:--|
7
+ |連泊情報|2019-06-11|2019-06-12|2019-06-13|2019-06-14|2019-06-15|2019-06-16|
8
+ |[2019-06-06] [\1,000]|||||||
9
+ |[2019-06-05] [\2,000] [2019-06-06] [\2,100] [2019-06-07] [\2,200]|||||||
10
+ |[2019-06-09] [\3,000] [2019-06-10] [\3,100] [2019-06-11] [\3,200]|||||||
11
+ |[2019-06-10] [\4,000] [2019-06-11] [\4,100] [2019-06-12] [\4,200]|||||||
12
+ |[2019-06-12] [\5,000]|||||||
13
+ |[2019-06-12] [\6,000] [2019-06-13] [\6,100] [2019-06-14] [\6,200]|||||||
14
+ |[2019-06-15] [\7,000] [2019-06-16] [\7,100] [2019-06-17] [\7,200]|||||||
15
+ |[2019-06-16] [\8,000] [2019-06-17] [\8,100] [2019-06-18] [\8,200]|||||||
16
+ |[2019-06-17] [\9,000] [2019-06-18] [\9,100] [2019-06-19] [\9,200]|||||||
17
+ |[2019-06-17] [\10,000]|||||||
5
18
 
6
19
  途中日付計算が面倒でMomentを使いました。
7
20
  このらへんを参考にどうぞ。

2

半角スペースを考慮

2019/06/18 04:11

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -17,11 +17,11 @@
17
17
  const data = sheet.getDataRange().getValues();
18
18
 
19
19
  // 連泊情報を整理
20
- const info = data.map(function(row) {
20
+ const info = data.map(function(row, idx) {
21
21
  // D列の値を取得してオブジェクト化
22
22
  const obj = {}
23
- row[3].replace(/][\/g, KvSeparater)
23
+ row[3].replace(/] [\/g, KvSeparater)
24
- .replace(/][/g, DataSeparater)
24
+ .replace(/] [/g, DataSeparater)
25
25
  .replace(/[/g,'')
26
26
  .replace(/]/g,'')
27
27
  .split(DataSeparater)

1

いらない引数ががが

2019/06/18 04:08

投稿

macaron_xxx
macaron_xxx

スコア3191

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  const data = sheet.getDataRange().getValues();
18
18
 
19
19
  // 連泊情報を整理
20
- const info = data.map(function(row, idx) {
20
+ const info = data.map(function(row) {
21
21
  // D列の値を取得してオブジェクト化
22
22
  const obj = {}
23
23
  row[3].replace(/][\/g, KvSeparater)