let a = [['1010','20','10'], ['3010','40','20']]
let b = [
{
KUNN2:"0000000001",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
},
{
KUNN2:"0000000002",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
},
{
KUNN2:"0000000003",
PARVW_TEXT:"收款方",
VKORG:'4100',
VTWEG:'30',
VSBED:'10'
},
{
KUNN2:"0000000004",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
},
{
KUNN2:"0000000005",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
}
]
如上面2面2個數組,數組a是匹配項,隨后我想要的結果是
let c = [[{
KUNN2:"0000000002",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
},{
KUNN2:"0000000005",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
}],[{
KUNN2:"0000000001",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
},{
KUNN2:"0000000004",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
}]]
希望各位大佬指教,不甚感激。### 題目描述
// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)
1.你給的a數組,第一個值應該是 1010對吧,
2.a數組的值 ,我能過目測是分別與VKORG,VTWEG,VBED三個值相對應的,有沒有不對應的需求,如果是對應的,哪就按下面代碼來就可以
let a = [['1010','20','10'], ['3010','40','20']]
let b = [
{
KUNN2:"0000000001",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
},
{
KUNN2:"0000000002",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
},
{
KUNN2:"0000000003",
PARVW_TEXT:"收款方",
VKORG:'4100',
VTWEG:'30',
VSBED:'10'
},
{
KUNN2:"0000000004",
PARVW_TEXT:"收款方",
VKORG:'3010',
VTWEG:'40',
VSBED:'20'
},
{
KUNN2:"0000000005",
PARVW_TEXT:"收款方",
VKORG:'1010',
VTWEG:'20',
VSBED:'10'
}
]
let c= b.filter((item)=>{
let index = a.find((arr)=>{
return arr[0]=== item.VKORG && arr[1]===item.VTWEG && arr[2]===item.VSBED
})
if(index){
return item
}
})
console.log(c)
第二種方法,判斷只要obj里的值含有 數組里的值就返回,從你的回復里看到,a數組的子數組個數也不確定,但是問題 如果存在以下數據,也會被返回
{
KUNN2:"0000000001",
PARVW_TEXT:"收款方",
VKORG:'10',
VTWEG:'1010',
VSBED:'20'
}
用下面的方法,這樣的數據也是匹配的。
let d = a.map((keys)=>{
let res = b.filter((item)=>{
let objarr = Object.values(item)
let oldlength = objarr.length
//以下代碼用于判斷數組是否為另一個數組的子集,采用的方法是把兩個數組合并,再去重后的數組長度等于原數組長度,則判定子集匹配。
let newarr = [...objarr,...keys]
let newlength =[...new Set(newarr)].length
if(oldlength === newlength){
return item
}
})
return res
})應該是你想要的吧
let a = [['1010', '20', '10'], ['3010', '40', '20']]
let b = [
{
KUNN2: "0000000001",
PARVW_TEXT: "收款方",
VKORG: '3010',
VTWEG: '40',
VSBED: '20'
},
{
KUNN2: "0000000002",
PARVW_TEXT: "收款方",
VKORG: '1010',
VTWEG: '20',
VSBED: '10'
},
{
KUNN2: "0000000003",
PARVW_TEXT: "收款方",
VKORG: '4100',
VTWEG: '30',
VSBED: '10'
},
{
KUNN2: "0000000004",
PARVW_TEXT: "收款方",
VKORG: '3010',
VTWEG: '40',
VSBED: '20'
},
{
KUNN2: "0000000005",
PARVW_TEXT: "收款方",
VKORG: '1010',
VTWEG: '20',
VSBED: '10'
}
]
const result = [];
for (const aItem of a) {
const bFilter = b.filter(({ VKORG, VTWEG, VSBED }) => VKORG === aItem[0] && VTWEG === aItem[1] && VSBED === aItem[2]);
bFilter.length > 0 && result.push(bFilter);
}
console.log(result);北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數據專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯想擔任系統開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統架構師,美國AngelEngineers Inc. 系統架構師。