12
5

More than 3 years have passed since last update.

【Amazon】ほしい物リストの総額を1ボタンで表示

Last updated at Posted at 2021-02-18

気になった本をAmazonのほしい物リストにポンポン入れていたら結構な量になり、そろそろ10万円超えてそうだなと思ったので調べてみました。ウェブコンソールさえ開ければコピペして使えるはずです。値段が表示されてない商品は無視されます。

追記 (2021 Feb 24)

@sugoroku_y さんからのコメントをもとに内容を変更しました。

  • タイトルを「Amazonでほしい物リストの総額を2行で表示する」から変更
  • コードを一行で表示

環境

Google Chrome - Version 88.0.4324.146 (Official Build) (arm64)
基本どのブラウザでも使えます(たぶんIEだと動かない)。

コード(追記前)

prices = Array.from(document.getElementsByClassName("a-price-whole"))
prices.map(price => parseInt(price.textContent.replace(/,/g, ''))).reduce((a, b) => a + b, 0)

結果(追記前)

31万1695円でした

Screenshot 2021-02-18 at 12.07.52.png

ポイント(追記前)

  • HTMLcorrectionをArrayにする
  • map(コンマの排除と整数化)
  • reduce(合計を計算)

コード(追記: 2021-Feb-24)

頂いたコメント

spread演算子使うと配列に変換するのが楽。
文字列を数値に変換するだけなら+を前に付けるだけでいい。
あとreduceは第2引数を省略すると配列の先頭を初期値として使ってくれるので便利。

[...document.querySelectorAll('.a-price-whole')].map(price=>+price.textContent.replace(/,/g,'')).reduce((a,b)=>a+b)

ブックマークレットに

頂いたコメント

ブックマークレットにすると便利かも

Javascriptのコードをお気に入りに登録しておくと、ワンクリックで総額を表示できるようになります[参考記事]

javascript:alert('合計:'+[...document.querySelectorAll('.a-price-whole')].map(price=>+price.textContent.replace(/,/g,'')).reduce((a,b)=>a+b).toString().replace(/(?<=\d)(?=(?:\d{3})+$)/g,',')+'円')

結果(追記: 2021-Feb-24)

まずブックマークレットを登録します。

お気に入りボタンをクリックした後、「More...」を選択します。

Screenshot 2021-02-24 at 17.46.27.png

URLの欄に上のコードをコピペします。

Untitled.png

出来上がったブックマークボタンをクリックすると総額が表示されます。

Screenshot 2021-02-24 at 17.52.28.png

おわりに

欲しい物リストです

何か買ってください

12
5
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
5