配列内の文字列をサブ配列に分割し、それを元の配列にプッシュしようとして問題が発生しています。
エラーが発生します:
TypeError: オブジェクトに関数分割が見つかりません
これが私のコードです:
// Split chapter into scenes
for(c in files){
var ID = files[c].getId();
var chapter = DocumentApp.openById(ID);
var text = chapter.getText();
// Splits chapter into scenes and pushes them to scenes
scenes.push(text.split("*"));
// Splits scenes into n,s,b
for(s in scenes){
scenes[s] = scenes[s].split("~");
}
// Push in scene wordcount
for(b in scenes){
var wordCount = scene[b][2].split(" ");
scenes[b].push(wordCount.length);
}
}
スクリプトがインポートするチャプタ ドキュメントは、次のようにフォーマットされます。
シーンタイトル
~シーン
のまとめ ~ シーン
の
本体・・・そうですね。
*
銀河へ
~
そして、こうなる…
~
そして、こうなる、全てはあれこれだった。右。
■
おわり
~
これでおしまい。
〜
そして、すべてがこれとあれだったということは、このようになります。右。終わり。
私は 2 つの配列を持っています。1 つchapters
はチャプター番号、名前、総単語数を保持し、次に特定のチャプターのすべてのシーンを保持するシーンを呼び出します (シーン名、要約、本文、単語数にもサブ配列されます)。章のタイトルは、DocsList 関数を使用して chapters 配列にインポートされます。
ドライブから章である特定のドキュメントのテキストを取得し、最初に文字 * を使用してシーンに分割します。
次に、完璧な世界では、オブジェクト配列内の各文字列を s サブ配列に分割してシーン配列をステップ実行し、文字 ~ を使用してサブ配列内のシーン番号、シーン名、およびシーン本体を分離し、その配列をにプッシュします元の配列。
だから、もし
scenes = ["The Beginning ~ In the beginning, blah blah blah ~ Body of the scene goes here", "The Beginning ~ In the beginning, blah blah blah ~ Body of the scene goes here"]
処理後、次のように変更されます。
scenes = [["The beginning", "In the beginning, blah blah blah", "Body of the scene goes here"], ["The beginning", "In the beginning, blah blah blah", "Body of the scene goes here"]]
問題は、チャプター ドキュメントをシーンに分割すると、シーンが文字列ではなくオブジェクトとして配列にプッシュされているように見えるため、シーン配列内の文字列をさらに分割することができなくなることです。