用Javascript处理对象

用Javascript处理对象,javascript,arrays,object,Javascript,Arrays,Object,这是我的目标: let data = [ {acnumber: 1, acname: "Mr X", acterm: "shorterm", acbalance: 150}, {acnumber: 2, acname: "Mr Y", acterm: "longterm", acbalance: 140}, {acnumber: 3, acname: "Mr

这是我的目标:

let data = [
        {acnumber: 1, acname: "Mr X", acterm: "shorterm", acbalance: 150},
        {acnumber: 2, acname: "Mr Y", acterm: "longterm", acbalance: 140},
        {acnumber: 3, acname: "Mr Z", acterm: "shorterm", acbalance: 155}
    ]
因为我只需要有关“短期”贷款的账户数量和账户余额的信息,所以我可以通过以下方式过滤此数据:

let shortTerm = data.filter((item)=>{
        if (item.acterm === "shorterm") {
            return item;
        }
    })
然后,我可以使用以下方法找到短期贷款账户的数量:

let numberOfAccounts = shortTerm.length;
let accountBalance = shortTerm.reduce((acc, item)=>{
        return acc+item.acbalance;
    },0)
此外,我还可以使用以下方法查找帐户余额的总和:

let numberOfAccounts = shortTerm.length;
let accountBalance = shortTerm.reduce((acc, item)=>{
        return acc+item.acbalance;
    },0)

我想知道是否有更好或更精确的方法可以得到同样的结果。我将非常感谢您的帮助。

一个
.reduce
将起作用-仅当迭代的对象是
短期
时,才将属性添加到累加器中。如果需要,请使用简明返回

let数据=[
{acnumber:1,acname:“X先生”,acterm:“短期”,acbalance:150},
{acnumber:2,acname:“Y先生”,actterm:“长期”,acbalance:140},
{acnumber:3,acname:“Z先生”,acterm:“短期”,acbalance:155}
]
const balance=data.reduce(
(a,obj)=>a+(obj.acterm==='shorterm'?obj.acbalance:0),
0
);

控制台日志(平衡)显示账户余额。账户数量如何?这是否可以同时返回帐户数和帐户余额总和?也许我们可以将这两个结果放入一个数组[2305]。我怎样才能做到这一点呢?如果两者都需要的话,最清晰的方法就是在单独的操作中完成<代码>常量numAccounts=data.reduce((a,obj)=>a+(obj.acterm=='shortterm'?1:0),0)