気になった本を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円でした
ポイント(追記前)
- 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...」を選択します。
URLの欄に上のコードをコピペします。
出来上がったブックマークボタンをクリックすると総額が表示されます。
おわりに
欲しい物リストです
何か買ってください