javascript - 删除逗号并重新添加时出现问题
问题描述
Q: 流程:原来每个数先去掉逗号,再相加,相加后再加回逗号。第一次点击总量没问题(500,000,010),但是第二次点击会变成(500)
new Vue({
el: "#app",
data: () => ({
goldOriginal: "10",
items: [{
goldAmout: "100,000,000"
},
{
goldAmout: "100,000,000"
},
{
goldAmout: "100,000,000"
},
{
goldAmout: "100,000,000"
},
{
goldAmout: "100,000,000"
},
],
}),
methods: {
revert() {
var goldItem = 0;
var goldTotal = 0;
for (let i in this.items) {
let goldAmout = this.items[i].goldAmout;
goldItem += parseInt(goldAmout.split(",").join(""));
goldTotal = parseInt(this.goldOriginal) + parseInt(goldItem);
this.items[i].goldAmout = 0;
}
this.goldOriginal = goldTotal.toLocaleString("en-US");
},
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<div id="app">
<span>{{goldOriginal}}</span>
<div class="revert-all text-center" @click="revert()">click</div>
<div class="item-box" v-for="(item, i) in items" :key="i">
<div class="amout-item d-flex justify-content-center">
<div class="update-amout">{{ item.goldAmout }}</div>
</div>
<div class="amout-item d-flex justify-content-center">
<div class="update-amout">{{ item.silverAmout }}</div>
</div>
</div>
</div>
解决方案
您还需要拆分您的 goldOriginal。
revert() {
var goldItem = 0;
var goldTotal = 0;
for (let i in this.items) {
let goldAmout = this.items[i].goldAmout;
goldItem += parseInt(goldAmout.split(",").join(""));
goldTotal = parseInt(this.goldOriginal.split(",").join("")) + parseInt(goldItem);
this.items[i].goldAmout = "0";
}
this.goldOriginal = goldTotal.toLocaleString("en-US");
}
我觉得有点难以理解,所以我做了一个较短的版本
revert() {
let goldTotal = parseInt(this.goldOriginal.split(",").join(""))
for (let i in this.items) {
let parsedGold = parseInt(this.items[i].goldAmout.split(",").join(""))
goldTotal += parsedGold;
this.items[i].goldAmout = "0";
}
this.goldOriginal = goldTotal.toLocaleString("en-US");
},
推荐阅读
- sql - 将 varchar 转换为 INT 时对话失败
- ios - 使用上传符号在 Firebase Crashlytics 上上传 appDsyms.zip 的正确方法
- r - 如何将for循环拆分为段
- kubernetes - Magento 1.9 可以是无状态的吗?
- c# - 如何比较 C# 中的两个列表?
- android - 使用 buildozer 部署时出现错误
- kubernetes - 无法使用 kubectl 代理以非管理员用户身份连接到 Kubernetes 仪表板
- python - Python:在没有方便的分隔符或固定宽度的情况下解析日志文件
- android - 将列表视图中的选中项传递给 arraylist/array
- r - 在 R 中创建函数以查找债券的票面利率