微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将不同数组中的值推送到不同的键

如何解决将不同数组中的值推送到不同的键

我有 2 个这样的数组:

let payrollname = [{"code": "a1","name": "Loan A"},{"code": "a2","name": "Loan B"},{"code": "a3","name": "Loan C"},{"code": "a4","name": "Loan D"},{"code": "a5","name": "Loan E"}]

let payrollbalance = [{"a1": 0,"a2": 100000,"a3": 500000,"a4": 300000,"a5": 45900}]

如何将值从 payrollbalance 推送到 payrollname

我的意思是像这样推送,来自 payrollbalance.a4 的值意味着 300000 推送到 payrollname.code == a4

我希望最终的结果可以类似:

let result = `[{"code": "a1","name": "Loan A","values": 0},"name": "Loan B","values": 100000},"name": "Loan C","values": 500000},"name": "Loan D","values": 300000},"name": "Loan E","values": 45900}]`

任何帮助都会得到帮助,我已经搞砸了一整天了。

提前致谢

解决方法

使用 Array.map() 并添加 values 键,值为 payrollbalance[0] 并通过 [] 表示动态的 json 键。

let payrollname = [{"code": "a1","name": "Loan A"},{"code": "a2","name": "Loan B"},{"code": "a3","name": "Loan C"},{"code": "a4","name": "Loan D"},{"code": "a5","name": "Loan E"}]

let payrollbalance = [{"a1": 0,"a2": 100000,"a3": 500000,"a4": 300000,"a5": 45900}]

let result = payrollname.map(item => ({
  ...item,values: payrollbalance[0][item.code]
}));

console.log(result);

,

进行数组搜索,找到索引并在之后更改

let payrollname = [{"code": "a1","name": "Loan E"}]
let payrollbalance = [{"a1": 0,"a5": 45900}]
var result = [];
let pblance = payrollbalance[0]
for(let p in pblance)
{
  let index = payrollname.findIndex(el => el.code==p)
  let pname = payrollname[index]
  pname.values = pblance[p];
  result.push(pname)
}
console.log(result);

,

此代码将起作用!

let payrollname = [{"code": "a1","a5": 45900}]
let result = []
let i = 0
payrollname.forEach(element => {
    let value = payrollbalance[0][element.code]
    element.values = value;
    result[i] = element
    i=i+1
});
console.log(result)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。