版權聲明:本文為博主原創文章,遵循
CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
1、首先一級與二級相同的嵌套
let arr = [ { date: '2020-01-06', age: '18'}, { date: '2020-01-06', age: '25'}, { date: '2020-01-07', age: '34'}, { date: '2020-01-07', age: '18'}, { date: '2020-01-07', age: '38'}, { date: '2020-01-08', age: '26'}, { date: '2020-01-09', age: '24'} ]
let dataArr = []; arr.map(mapItem => { if (dataArr.length == 0) { dataArr.push({ date: mapItem.date, List: [mapItem] }) } else { let res = dataArr.some(item=> {//判斷相同日期,有就添加到當前項 if (item.date == mapItem.date) { item.List.push(mapItem) return true } }) if (!res) {//如果沒找相同日期添加一個新對象 dataArr.push({ date: mapItem.date, List: [mapItem] }) } } })
結果
dataArr = [ { date:'2020-01-06', List: [ { date: '2020-01-06', age: '18'}, { date: '2020-01-06', age: '25'} ] }, { date:'2020-01-07', List: [ { date: '2020-01-07', age: '34'}, { date: '2020-01-07', age: '18'}, { date: '2020-01-07', age: '38'}, ] }, { date:'2020-01-08', List: [ { date: '2020-01-08', age: '26'}, ] }, { date:'2020-01-09', List: [ { date: '2020-01-09', age: '24' } ] } ]
第二種情況:一級四位數(0001),二級八位數字(00010001)獲取的條件是通過一級的四位數字匹配二級的前四位數字
方法1:
var userArr = [ { id: "0001", userName: "laozhang_1" }, { id: "00010001", userName: "laozhang1" }, { id: "00010002", userName: "laozhang1" }, { id: "00010003", userName: "laozhang1" }, { id: "0002", userName: "laowang" }, { id: "00020002", userName: "laozhang2" }, { id: "00020003", userName: "laowang" }, { id: "00020004", userName: "laowang" }, { id: "00020005", userName: "laowang" }, { id: "00020006", userName: "laowang" } ];
let newArr = [] userArr.forEach(item => { if (item.id.length === 4) { newArr.push({ ...item, list: [] }); } }); newArr.forEach(item => { userArr.forEach(user => { if (item.id !== user.id && item.id == user.id.substring(0, 4)) { item.list.push(user); } }); }); console.log(newArr)
方法2:
var userArr = [ { id: "0001", userName: "laozhang_1" }, { id: "00010001", userName: "laozhang1" }, { id: "00010002", userName: "laozhang1" }, { id: "00010003", userName: "laozhang1" }, { id: "0002", userName: "laowang" }, { id: "00020002", userName: "laozhang2" }, { id: "00020003", userName: "laowang" }, { id: "00020004", userName: "laowang" }, { id: "00020005", userName: "laowang" }, { id: "00020006", userName: "laowang" } ];
let newArr = userArr.filter(item => item.id.length === 4) newArr.forEach(item => { item.list = userArr.filter(user => item.id !== user.id && item.id == user.id.substring(0, 4)) }) console.log(newArr)
總結:學好js基礎很重要