javascript - 如何从循环中返回值。js, Vue.js
问题描述
抱歉,我是 JS 的初学者,我有一个基本问题,但我花了一整天试图在谷歌中找到答案,但我没有。
我有一个基于 php 开发的大规模金融工具,我需要构建复杂的金融计算器,以反应性显示所有内容。我需要帮助来弄清楚如何if
在循环内使用许多语句进行复杂的计算,然后对数组中每个对象的输出值求和并返回总和值。为此使用 Vuejs。
所以 mycashDividends()
必须是循环中每个对象的计算值的总和。
下面我放了一段代码来理解我面临的问题。
请检查是否有一分钟。谢谢!
new Vue({
el: "#waterfall",
data() {
return {
info: {
cash_dividends: true,
converted_liabilities: true,
},
equities: [
@foreach($preferredEquities as $equity)
{ name: '{{ $equity->name }}', id: {{ $equity->id }} },
@endforeach
]
}
},
computed: {
remainingExit () {
return this.form.exit_value - this.form.uncovered_debt - this.form.transaction_fees
},
cashDividends() {
//I supposed should be something like this.
this.equities.forEach(function(equity)
{
//Here I make a lot of calculations with bunch of if statements using object and DOM input values. for each object
}
// And here I need to return sum of calculated values from each object (equity) in array
}
},
解决方案
您可以使用可以在此处reduce
了解更多信息的功能:
new Vue({
el: "#app",
data: {
equities: [{
name: "Serias A",
price: 20
},
{
name: "Serias B",
price: 21
},
]
},
computed: {
cashDividends() {
return this.equities.reduce(this.sum);
}
},
methods: {
sum(total, num) {
return total.price + num.price
}
}
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.min.js"></script>
<div id="app">
{{cashDividends}}
</div>
推荐阅读
- javascript - 如何重新加载现有 dataTable() 中的数据?
- python-3.x - Python多个具有不同延迟的For循环
- swift - 如何使用 swift 中的按钮点击动态更改 textview 中的字体?
- c# - 使用 LightInject 时如何注入 IServiceContainer?
- google-cloud-dataproc - Sqoop 导入到 avrodatafile 或 Parquet 文件在 dataproc 集群中失败
- asp.net - 如何在没有依赖注入的情况下在 Asp.Net Web Api 2 中使用 AutoMapper 9.0.0?
- c# - 为什么 JSON.Net 会修改原来的 JObject?
- javascript - 垂直滚动时不允许水平滚动(反之亦然)
- python - 在 Pandas Python 上使用 where 查询分组
- kotlin - kotlin:retrofit2 得到 404 url not found 错误