利用数组的方式
var objArr = [{ name: 'a', age: 1 },{ name: 'a', age: 2 },{ name: 'b', age: 2
}]
function objArrDemp(objArr,key){
var temp = [];
var newArr = [];
for (var i=0;i<objArr.length;i++) {
//判断temp数组里是否存在当前遍历的key,存在就跳过
if(temp.includes(objArr[i][key])){
continue
}else{
newArr.push(objArr[i])
temp.push(objArr[i][key])
}
}
return newArr
}
var value1 = objArrDemp(objArr,"name")
var value2 = objArrDemp(objArr,"age")
console.log(value1)
console.log(value2)
二、利用对象的方法
var objArr = [{ name: 'a', age: 1 },{ name: 'a', age: 2 },{ name: 'b', age: 2
}]
function objArrDemp2(objArr,key){
var obj = {}
var newArr = [];
for (var i=0; i<objArr.length;i++) {
if(obj[objArr[i][key]]){
continue
}else{
newArr.push(objArr[i])
obj[objArr[i][key]] = true
}
}
return newArr
}
var value1 = objArrDemp2(objArr,"name")
var value2 = objArrDemp2(objArr,"age")
console.log(value1)
console.log(value2)
三、利用双重for循环(以理解为主)
function objArrDemp3(objArr,key){
var temp = []
for (var i=0;i<objArr.length;i++) {
var flag = false;
for(var j=0;j<temp.length;j++){
if(objArr[i][key] === temp[j][key]){
flag = true
}
}
if(flag){
continue
}else{
temp.push(objArr[i])
}
}
return temp
}
var value1 = objArrDemp3(objArr,"name")
var value2 = objArrDemp3(objArr,"age")
console.log(value1)
console.log(value2)