实现功能:项目中需要实现,请求过来的数组对象数据选中和取消选中功能;选中可在创建一个新的数组中追加数据,取消可减少数据,具体实现不在嗷述;此处仅处理默认情况下选中不选中的处理;
ES6: 实现一个数组和另一个数组通过比较数组对象的字段值,达到处理另一个数组的内容项,以追加一条字段属性,值是通过判断的结果处理得到设置;
代码实现如下:
data(){
return {
arry:[]
}
},
methods: {
getArr(){
let arr1=[
{
id:'01',
name:'aaa',
},
{
id:'02',
name:'aaa',
},
{
id:'03',
name:'aaa',
},
]
let arr2 = [
{
id:'01',
name:'aaa',
},
{
id:'03',
name:'aaa',
},
]
arr1.forEach(item=>{
let isInclude = arr2.some(it => {
return it.id == item.id
})
if(isInclude == false){
item.ischeck = false
}else{
item.ischeck = true
}
})
this.arry= arr1 //最终赋值
}
}
2、简单数组去重 Es6 : new Set()
//ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
//ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如: let set = new Set();
let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
console.log(array);
3、 数组中去重》引用类型 方式
var arr = [{
"name": "战士",
"age": "12",
"gender": "AAAAAA.doc"
}, {
"name": "胡说",
"age": "32",
"gender": "BBBBBB.doc"
}, {
"name": "战士",
"age": "32",
"gender": "CCCCCC.doc"
}, {
"name": "李四",
"age": "15",
"gender": "AAAAAA.doc"
}];
var hash = {};
arr = arr.reduce(function(item, next) {
hash[next.name] ? '' : hash[next.name] = true && item.push(next);
return item
}, [])
console.log(arr);