質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

552閲覧

Developer toolのconsoleで表示される Javascriptの"d{" とはなんでしょうか?

pegy

総合スコア245

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/25 03:40

編集2020/06/25 03:41

下記のようなコードでconsole.log(zip)をすると、下記のconsoleのように表示されます。そこでname: "test.pdf"を変更したいのでzip.d['filses']['test.pdf']['name']="hoge.pdf"のようにしてもconsole上zip.d自体がundefinedになってしまいます。

1.そもそもここでいうd{・・・とはどのような意味なのでしょうか?
2.name: "test.pdf"の変数を変更するのが目的なのですが、どのようにnameにアクセスすればよいのでしょうか?

基本的なことであれば大変もうしわけございません。

javascript

1 function downloadFile(zip, url, filename) { 2 return new kintone.Promise(function(resolve, reject) { 3 // getbinarycontent は 非同期でURL からファイルを取得するAPI 4 // JSZIP util APIを利用 5 JSZipUtils.getBinaryContent(url, function(err, data) { 6 if (err) { 7 reject(err); 8 } 9 zip.file(filename, data, {binary: true}); 10          console.log(zip)//ここです 11 resolve(data); 12 }); 13 }); 14 } 15

console

1▼d {files: {…}, comment: null, root: "", clone: ƒ} 2 ▶clone: ƒ () 3 comment: null 4 ▶files: 5 ▶test.pdf: i {name: "test.pdf", dir: false, date: Thu Jun 25 2020 12:18:39 GMT+0900 6 (日本標準時), comment: null, unixPermissions: null, …} 7 ▶__proto__: Object 8root: "" 9 ▶__proto__: Object

宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1.そもそもここでいうd{・・・とはどのような意味なのでしょうか?

圧縮された結果コンストラクタがdになってしまっただけで、d自体に特別な意味はありません。

2.name: "test.pdf"の変数を変更するのが目的なのですが、どのようにnameにアクセスすればよいのでしょうか

使っているAPIのドキュメントなどを確認してみるのが適切な手段です。オブジェクトの構造を自分で読み進めて強引に書き換えると、環境やバージョンの変化で動かない、ということになる危険があります。

投稿2020/06/25 03:45

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/06/25 08:01

コメントいただき、誠にありがとうございます。 dについてはよくわかりました。APIのドキュメントでは対応できず、何とかないかと触っていたのですが、zip.filesでアクセスはできたのですがzip.files["test.pdf"]でいくとundefinedですね。。ここらへんのjavascriptのオブジェクトの構造とDTの見方が少し慣れないのですが、ドットが問題なのかと思いつつ文字列なので関係はないと思うのですが・・・
guest

0

1.そもそもここでいうd{・・・とはどのような意味なのでしょうか?

github JSZipドキュメントJSZipオブジェクトに相当します。

  • JSZip .. アーカイブファイル(zipファイル)に相当するオブジェクト:api_jszip
  • ZipObject .. 格納されたエントリ(ファイル/ディレクトリ)の情報を持ったオブジェクト:api_zipobject

2.name: "test.pdf"の変数を変更するのが目的なのですが、どのようにnameにアクセスすればよいのでしょうか?

  • 格納されたエントリへのアクセス方法:examples

gitHub でマークダウンを公開するだけの簡易的なドキュメント公開のようです。


ご質問のコメント JSZIP Util API から察するに、同じ作者の JSZip圧縮ファイルを展開した結果と思い、上記の回答となります。

投稿2020/06/25 10:24

AkitoshiManabe

総合スコア5434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/06/26 05:00

コメント頂き本当にありがとうございます。少し読み進めても実はJSZipとJSZip-utilsの作者は同じなのはわかるのですが、両社がどのような関係にあるのかはわかりませんでした。 ただ、アクセスするための方法としてexamplesのRead a zip fileというご指定のところを読んだのですがReadするだけで書き換えることはできないということなのでしょうか? Gitの読み方がまだまだ理解できていなくて申しわけございませんが、もし解釈の仕方が間違っていればご教示願えますでしょうか? 宜しくお願い申し上げます。
AkitoshiManabe

2020/06/26 05:44

JSZip で圧縮は試したことがないのですが、examplesの「Generate a zip file」セクションが空のJSZipオブジェクトを作りはじめる内容になっっていますね。また、howto というディレクトリを切って read / write の両方を説明しているみたいです。
pegy

2020/06/26 05:55

申し訳ございません、どうしてもdocumentationをみても解決に至らなかったのですが(zipの名前を変えるのは容易なのですが・・・
pegy

2020/06/26 05:56

//非同期で1ファイルダウンロードし、zipへ組み込みする関数 function downloadFile(zip, url, filename) { return new kintone.Promise(function(resolve, reject) { // getbinarycontent は 非同期でURL からファイルを取得するAPI // JSZIP util APIを利用 JSZipUtils.getBinaryContent(url, function(err, data) { if (err) { reject(err); } zip.file(filename, data, {binary: true}); console.log(zip) resolve(data); }); }); } // 複数ファイルのダウンロードを実行する関数 function downloadFiles(files, zip, filenum) { var opt_zip = zip || new JSZip(); var opt_filenum = filenum || 0; return downloadFile(opt_zip, files[opt_filenum]["blobUrl"],files[opt_filenum]["name"]).then(function(data) { opt_filenum++; if (opt_filenum === files.length) { return opt_zip; } return downloadFiles(files, opt_zip, opt_filenum); }); } //ファイルをzip化する関数 function doZipFile(zip) { return zip.generateAsync({type: "blob"}); } //ファイルを保存する関数 function saveZipFile(content) { //FileSaver.jsを利用して保存 return saveAs(content, "example.zip"); }
pegy

2020/06/26 06:06

これらの関数群でJSZipやJSZip-utilsを使って、ファイルをダウンロード、保存して出力することはできたのですが、どうしてもzipオブジェクトの中にあるファイル群の名前にアクセスしてwriteすることができませんでした。 console.log(zip)でzipオブジェクトの中に既に ▶files  ▶bar.pdf: i {name: "bar.pdf", dir: false, date: Fri Jun 26 2020 14:54:09 GMT+0900 (日本標準時), comment: null, unixPermissions: null, …}  ▶hoge.pdf: i {name: "hoge.pdf", dir: false, date: Fri Jun 26 2020 14:54:09 GMT+0900 (日本標準時), comment: null, unixPermissions: null, …}  ▶piyo.pdf: i {name: "piyo.pdf", dir: false, date: Fri Jun 26 2020 14:54:09 GMT+0900 (日本標準時), comment: null, unixPermissions: null, …}  ▶test.pdf: i {name: "test.pdf", dir: fa のようにファイル名が元の通り適切に取得できているのは確認できるのですが、 https://github.com/Stuk/jszip/blob/master/documentation/howto/write_zip.md にはzipの名前の付け方しかなかったため、他のdocumentationも当たっている状況です。 前後の文脈なくこれでは利用したことがあったとしてもわからないという場合にはお叱りください・・ ご迷惑をおかけし、誠に申し訳ございません。
pegy

2020/06/26 14:48

すみません、解決しました。ご放念くださいませ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問