js取出一個數組中相同的項

找出下面數組中,name相同的項

let arr = [
		{name:'小明',age:12,height:88},
		{name:'小明2',age:12,height:58},
		{name:'小明4',age:12,height:28},
		{name:'小明',age:12,height:88},
		{name:'小明',age:12,height:88},
		{name:'小紅',age:12,height:88},
		{name:'小紅',age:12,height:88},
		{name:'小黃',age:12,height:88},
		{name:'小黃',age:12,height:88},
		{name:'小紅',age:12,height:88},
	]
let same = []
	for(let i = 0 ; i < arr.length; i++) {
	  for(let j = 1; j < arr.length; j++) {
	    if(arr[i].name === arr[j].name && i!==j) {
    		let validate = {
    			isHas: false,
    			index:null
    		}
    		same.forEach((item,index)=>{
    			if(item.name===arr[i].name){
    				validate.isHas = true;
    				validate.index = index;
    			}
    		})
    		if(validate.isHas){
    			let sameItem = same[validate.index];
				sameItem.index = [...new Set([...sameItem.index,i,j])]
			}else{
				same.push({name:arr[i].name,index:[i,j]})
			}
	    }
	  }
	}

console.log(same)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章