javascript - 在javascript中查找和替换嵌套数组对象
问题描述
如何在javascript中查找和替换深层嵌套数组对象
我有一个示例对象名称并按(obj_res)obj
过滤了该对象。id, in , and out
如何在 javascript 中使用id fund
in查找和更新特定 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
}]
解决方案
晚会有点晚了,呵呵。我也需要修改深度嵌套的对象,但没有找到可以接受的工具。然后我做了这个并将其推送到 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
希望这可以帮助别人。
推荐阅读
- python - 插入列但合并单元格有问题
- javascript - 未捕获的 ReferenceError:在初始化之前无法访问“jobTreeReducers”
- python - 同一CNN上的不同精度
- angular - 条件RouterLinkActive
- jenkins - Git使用用户名和密码在jenkins管道中签出外部项目
- hibernate - JPA与关系模型中双向关系的概念
- typescript - 删除一条与nest js有多对多关系的记录,输入ORM
- javascript - 如何检测浏览器环境并导出模块?
- android - 为什么在片段 Kotlin 上使用“this”时会出现类型不匹配
- selenium-webdriver - 使用 python 来 find_element_by_xpath 的问题