FEd*_*per 3 javascript arrays merge object reactjs
我有 2 个独立的 JS 对象,它们需要合并到同一个属性中。
对象目前看起来像这样:
对象 1:
[0:{"acircuit":"ABCDEFGH","astatus":"Test"}, 1:{"acircuit":"IJKLMNOP","astatus":"Test2"}]
Run Code Online (Sandbox Code Playgroud)
对象 2:
[0:{"bcircuit":"ABCDEFGH","bstatus":"Test3"}, 1:{"bcircuit":"IJKLMNOP","bstatus":"Test4"}]
Run Code Online (Sandbox Code Playgroud)
我需要将这些结果合并为一个结果,如下所示:
[
0:{"acircuit":"ABCDEFGH","astatus":"Test","bcircuit":"ABCDEFGH","bstatus":"Test3"},
1:{"acircuit":"IJKLMNOP","astatus":"Test2","bcircuit":"IJKLMNOP","bstatus":"Test4"}
]
Run Code Online (Sandbox Code Playgroud)
当前代码如下所示:
allResults = {this.state.aCircuitResults.concat(this.state.bCircuitResults)}
Run Code Online (Sandbox Code Playgroud)
但是,结果如下所示:
[
0:{"acircuit":"ABCDEFGH","astatus":"Test"},
1:{"acircuit":"IJKLMNOP","astatus":"Test2"}
2:{"bcircuit":"ABCDEFGH","bstatus":"Test3"},
3:{"bcircuit":"IJKLMNOP","bstatus":"Test4"}
]
Run Code Online (Sandbox Code Playgroud)
提前致谢。
您可以使用mapand Object.assign,假设您想按它们在数组中的位置组合它们:
const result = firstArray.map((firstObject, index) => Object.assign({}, firstObject, secondArray[index]));
Run Code Online (Sandbox Code Playgroud)
例子:
const result = firstArray.map((firstObject, index) => Object.assign({}, firstObject, secondArray[index]));
Run Code Online (Sandbox Code Playgroud)
如果您需要通过属性(例如,acircuit和bcircuit)将它们关联起来,从属性Map键控的其中一个构建一个,然后您可以在map操作中使用查找:
const second = new Map(secondArray.map(obj => [obj.bcircuit, obj]));
const result = firstArray.map(firstObject => Object.assign({}, firstObject, second.get(firstObject.acircuit)));
Run Code Online (Sandbox Code Playgroud)
例子:
const firstArray = [{"acircuit":"ABCDEFGH","astatus":"Test"},{"acircuit":"IJKLMNOP","astatus":"Test2"}];
const secondArray = [{"bcircuit":"ABCDEFGH","bstatus":"Test3"},{"bcircuit":"IJKLMNOP","bstatus":"Test4"}];
const result = firstArray.map((firstObject, index) => Object.assign({}, firstObject, secondArray[index]));
console.log(result);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |