スーパーの商品をオブジェクトで表した。(商品名、価格、賞味期限)
賞味期限から残りの日数を計算するようにした。
実行イメージ
ソースコード
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="main.js"></script>
<title>スーパーの商品をオブジェクト化</title>
</head>
<body>
<p>コンソールに表示しています...</p>
</body>
</html>
main.js
// main.js
window.addEventListener("load", ()=>{
// 商品配列(オブジェクトで設定)
const products = [
{
name: "トマト", // 商品名
price: 389, // 価格
exp: "2022/06/25", // 賞味期限
},
{
name: "オトメメロン",
price: 1500,
exp: "2022/06/29",
},
{
name: "ザッキー",
price: 198,
exp: "2022/12/10",
},
{
name: "ソース焼きそば",
price: 128,
exp: "2022/6/19",
}
];
// 商品を表示する
for(let product of products){
// 今日の日付を文字列化(20XX/XX/XX)
const now = new Date();
const strToday = now.getFullYear() + "/" + (now.getMonth()+1) + "/" + now.getDate();
// Dateオブジェクトに直す(差分日数計算のため)
const today = new Date(strToday);
const expday = new Date(product.exp);
// 賞味期限計算
let left = (expday - today) / 86400000;
if(left < 0) left = "賞味期限切れ";
else left = "あと" + left + "日";
// 商品別表示
console.log(`${product.name} ${product.price}円`);
console.log(`\t${left} 賞味期限 ${product.exp}`);
}
});
コメント