照着你的数据格式写的,这种问题还是直接贴代码比较好 var setting = { bgImg:'aaaaa', text:'文案文案', text2:"文案文案2", text3:"文案文案3" } var winning = ['中奖1','中奖2','中奖3','中奖4','中奖5','中奖6'] const buildWinningList = function (setting,winning) { let settingMap = new Map() let result = [] for(let key in setting) { let winningMatch = winning.filter(el => { if(el.match(/\d/) && key.match(/\d/)) { return el.match(/\d/)[0] == key.match(/\d/)[0] } if(!key.match(/\d/)) { return el.match(/1$/) } })[0] if(setting[key].search('文案')>=0) { settingMap.set(key,winningMatch) } } settingMap.forEach((val,key) => { result.push({key:key,val:val}) }) return result } console.log(buildWinningList(setting,winning)) [ { key: 'text', val: '中奖1' }, { key: 'text2', val: '中奖2' }, { key: 'text3', val: '中奖3' } ]
照着你的数据格式写的,这种问题还是直接贴代码比较好