遍历对象然后根据下面的任务更新其属性的最佳方法是什么?
What is the best method to loop through an object and then update its properties according to this task below?
我正在尝试解决这个问题:
"使用给定的对象并遍历其属性 - 如果它有 属性“折扣”,打印“已经打折了……”并添加值(折扣是多少) .相反的情况,检查价格,根据它(如果大于或小于100),添加折扣(如果更大则为10%,如果更低则为7%)并添加属性“折扣”到对象。"
我想到这个是为了找到折扣价(如果你取消注释折扣,它应该会导致第一个结果)但我发现这非常丑陋......我走错路了吗?
任何建议将不胜感激!
let prod = {
name: 'headphones',
price: 83.7,
//discount: "7%",
}
if (prod.discount) {
console.log(`Already discounted by ${prod.discount}`)
}
else if (prod.price >= 100) {
discount = ((prod.price / 100) * 10);
prod.price = (prod.price - discount);
}
else {
discount = ((prod.price / 100) * 7);
prod.price = (prod.price - discount);
};
console.log(prod.price);
看这个见仁见智吧,要是我的话,你就把开头的折扣属性定义成空串""
。然后您将检查 属性 的长度以查看它是否已应用,或者理想情况下使用单独的 属性 来跟踪是否应用了折扣。
否则,语义 if (prod.discount)
通常用于专业 JS 设置,所以我看不出有什么问题。
我建议这样做:
let prod = {
name: 'headphones',
price: 83.7,
discount: "",
}
if (prod.discount.length) {
console.log(`Already discounted by ${prod.discount}`)
}
这样您就不会依赖未初始化的属性。
我正在尝试解决这个问题:
"使用给定的对象并遍历其属性 - 如果它有 属性“折扣”,打印“已经打折了……”并添加值(折扣是多少) .相反的情况,检查价格,根据它(如果大于或小于100),添加折扣(如果更大则为10%,如果更低则为7%)并添加属性“折扣”到对象。"
我想到这个是为了找到折扣价(如果你取消注释折扣,它应该会导致第一个结果)但我发现这非常丑陋......我走错路了吗? 任何建议将不胜感激!
let prod = {
name: 'headphones',
price: 83.7,
//discount: "7%",
}
if (prod.discount) {
console.log(`Already discounted by ${prod.discount}`)
}
else if (prod.price >= 100) {
discount = ((prod.price / 100) * 10);
prod.price = (prod.price - discount);
}
else {
discount = ((prod.price / 100) * 7);
prod.price = (prod.price - discount);
};
console.log(prod.price);
看这个见仁见智吧,要是我的话,你就把开头的折扣属性定义成空串""
。然后您将检查 属性 的长度以查看它是否已应用,或者理想情况下使用单独的 属性 来跟踪是否应用了折扣。
否则,语义 if (prod.discount)
通常用于专业 JS 设置,所以我看不出有什么问题。
我建议这样做:
let prod = {
name: 'headphones',
price: 83.7,
discount: "",
}
if (prod.discount.length) {
console.log(`Already discounted by ${prod.discount}`)
}
这样您就不会依赖未初始化的属性。