首页 > 解决方案 > 在javascript中查找和替换嵌套数组对象

问题描述

如何在javascript中查找和替换深层嵌套数组对象

我有一个示例对象名称并按(obj_res)obj过滤了该对象。id, in , and out如何在 javascript 中使用id fundin查找和更新特定 obj,obj_res如预期输出所示

我被卡住了需要帮助如何在 javascript 中做

var obj_res = getValue("bank", "bank", "trans");
function getValue(send, receive, id){
   const temp = obj.map(e => Object.entries(e).map(([k, val]) => val)).flat(3)
    result_obj = temp.filter(x=>x.in ==send && && x=>x.out ==receive && x.id == id);
  return result_obj;}
//whole object input
var obj = [{
    "btob": [{
      "id": "trans",
      "in": "bank",
      "out": "bank",
      "value": 10,
    },{
      "id": "fund",
      "in": "bank",
      "out": "bank",
      "value": 10
    }],
    "ctob": [{
      "id": "trans",
      "in": "credit",
      "out": "bank",
      "value": 20
    },{
      "id": "fund",
      "in": "credit",
      "out": "bank",
      "value": 10
    }]
}]
//resultant obj after filter by id , in ,out 
var obj_res =[{
  "id": "trans",
  "in": "bank",
  "out": "bank",
  "value": 10
 },{
 "id": "fund",
 "in": "bank",
 "out": "bank",
 "value": 10
}]

 Expected Output:
  res=[{
  "id": "trans",
  "in": "bank",
  "out": "bank",
  "value": 10
 },{
"id": "fund",
"in": "credit",
"out": "bank",
"value": 10
}]

标签: javascriptjqueryarraysobject

解决方案


晚会有点晚了,呵呵。我也需要修改深度嵌套的对象,但没有找到可以接受的工具。然后我做了这个并将其推送到 npm。

https://www.npmjs.com/package/find-and

这个小库可以帮助以 lodash 方式修改嵌套对象。例如,

var findAnd = require("find-and");

const obj_res =[{
  "id": "trans",
  "in": "bank",
  "out": "bank",
  "value": 10
 },{
 "id": "fund",
 "in": "bank",
 "out": "bank",
 "value": 10
}];

findAnd.changeProps(obj_res, { id: 'fund' }, { in: 'credit' });

输出你想要的。

https://runkit.com/arfeo/find-and

希望这可以帮助别人。


推荐阅读