将数组中有相同值的对象取出组成新的数组Object.values()

原数组数据

let productList = [
			{
                familyId: 1,
                list:{
                	name:'时笙',
                	age:"25"
                }
        	},
        	{
                familyId: 2,
                list:{
                	name:'凤辞',
                	age:"25"
                }
        	},
        	{
                familyId: 1,
                list:{
                	name:'时秒',
                	age:"18"
                }
        	},
        	{
                familyId: 2,
                list:{
                	name:'时分',
                	age:"18"
                }
        	}
        ];

对数组进行梳理的代码

let familyIdSort = productList.sort((a, b) => { //根据数组的 familyId 排序
            return a["familyId"] < b["familyId"] ? -1 : 1;
        })
        // console.log(familyIdSort);
        let  json={}//声明一个空的对象
        //forEach循环之前排序后的数组给json对象的键值赋值
        familyIdSort.forEach(item=>{
        	let array=json[item["familyId"]] || []
        	array.push(item)
        	json[item["familyId"]]=array
        })
        console.log(json); //数据已经分组

		//原生对象转数组
		let arr=Object.values(json)
		console.log(arr)

最后的得到的结果

/*[
		    [
		        {
		            "familyId":1,
		            "list":{
		                "name":"时笙",
		                "age":"25"
		            }
		        },
		        {
		            "familyId":1,
		            "list":{
		                "name":"时秒",
		                "age":"18"
		            }
		        }
		    ],
		    [
		        {
		            "familyId":2,
		            "list":{
		                "name":"凤辞",
		                "age":"25"
		            }
		        },
		        {
		            "familyId":2,
		            "list":{
		                "name":"时分",
		                "age":"18"
		            }
		        }
		    ]
		]*/

你可能感兴趣的:(将数组中有相同值的对象取出组成新的数组Object.values())