JS两个数组根据相同的ID进行重新组合数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS两个数组根据相同的ID进行重新组合数据?相关的知识,希望对你有一定的参考价值。
var c = a.concat(b),//合并成一个数组temp = ,//用于id判断重复
result = [];//最后的新数组
//遍历c数组,将每个item.id在temp中是否存在值做判断,如不存在则对应的item赋值给新数组,并将temp中item.id对应的key赋值,下次对相同值做判断时便不会走此分支,达到判断重复值的目的;
c.map((item,index)=>
if(!temp[item.id])
result.push(item);
temp[item.id] = true
)
console.log(result) 参考技术A 相同的一组数据,他在进行组合的时候也是会产生一些变化。 参考技术B 遍历,判断ID是否相同,相同就组合value就好了。 然后写到一个新的对象里面。 参考技术C 是的,重新开始就好了 参考技术D 这个问题我不发工资,我不太清楚
根据 ID 和 Index 组合两个数组
【中文标题】根据 ID 和 Index 组合两个数组【英文标题】:Combine two arrays based off of ID and Index 【发布时间】:2021-05-09 00:06:51 【问题描述】:我有两个数组。 arr1 有一个 questionID 属性,我需要根据 arr1 questionID == arr2 INDEX 将 arr1 与 arr2 结合起来。
所以如果 arr1 questionID = 1 它将与 arr2 索引 1 匹配
这可能吗?
这是我目前所拥有的,但这似乎只是根据它们的索引组合两个数组
this.combinedArray = [this.content, this.studyQuestions].reduce((a, b) => a.map((c, i) => Object.assign(, c, b[i])))
【问题讨论】:
是否保证arr1中的每一项在arr2中都有对应的项? @MoshFeu 不,可能存在 arr2 多于或少于 arr1 的情况 @MoshFeu arr1 是恒定的,但 arr2 会根据用户输入而变化 【参考方案1】:如果我理解正确,您可以将arr1
映射到一个新数组中。 map 回调从arr1
- ...item
获取整个项目,并在questionID
- ...arr2[item.questionID
给出的索引中从arr2
获取整个项目。
这就是收集的工作原理
const arr1 = [
questionID: 0,
prop: 'value1.1'
,
questionID: 2,
prop: 'value1.2'
]
const arr2 = [
prop1: 'value2.1'
,
prop1: 'value2.2'
,
prop1: 'value2.3'
];
const combinedArray = arr1.map((item, index) => (
...item,
...arr2[item.questionID]
));
console.log(combinedArray);
【讨论】:
以上是关于JS两个数组根据相同的ID进行重新组合数据?的主要内容,如果未能解决你的问题,请参考以下文章