工具代码
/**
* 数组一对多匹配
* oneList对应多个moreList
* 适用全部
*/
function oneToList (oneList, moreList, oneListKey, moreListKey, itemName) {
var spareOneList = []
for (var i = 0; i < oneList.length; i++) {
spareOneList['s' + oneList[i][oneListKey]] = oneList[i]
spareOneList['s' + oneList[i][oneListKey]][itemName] = []
}
for (var i = 0; i < moreList.length; i++) {
spareOneList['s' + moreList[i][moreListKey]][itemName].push(moreList[i])
}
var newArr = []
for (var i in spareOneList){
newArr.push(spareOneList[i])
}
return newArr
}
- 适用场景
var oneList = [
{
name: '马克',
id: 16
},
{
name: '零三',
id: 21
},
{
name: '小明',
id: 18
}
]
var moreList = [
{
list1Id: 16,
speak: 'hello16'
},
{
list1Id: 21,
speak: 'hello21'
},{
list1Id: 16,
speak: 'hello16'
},
{
list1Id: 18,
speak: 'hello18'
},
{
list1Id: 18,
speak: 'hello18'
},
{
list1Id: 21,
speak: 'hello21'
},
{
list1Id: 18,
speak: 'hello18'
}
]
var listResult = oneToList(oneList,moreList,'id','list1Id','moreList')
console.log(listResult)
确定不来Q群交流一下? 867364698