<template>
<div class="app"> </div>
</template>
<script>
export default {
data(){
return{
arr1:[
{ id:'1',name:'Eva' },
{ id:'2', name:'Lucy'}
],
arr2:[
{ id:'1',name:'Eva', age:'10'},
{ id:'2', name:'Lucy', age:'11'},
{ id:'3', name:'Tom', age:'12'}
],
arr3:[
{ id:'1',name:'Eva', age:'10'},
{ id:'2', name:'Lucy', age:'11'},
{ id:'1',name:'Eva', age:'10'},
]
}
},
created(){
// (1).js两个数组对象获取相同和不同的元素对象(ES6)
//取不同的元素(ES6的方法)
let res = this.arr2.filter(item => !this.arr1.some(ele=> ele.id === item.id))
console.log('res', res); //{ id:'3', name:'Tom', age:'12'}
//取相同的元素(ES6的方法)
let res2 = this.arr2.filter(item => this.arr1.some(ele=> ele.id === item.id))
console.log('res2', res2); //{ id:'1',name:'Eva' }, { id:'2', name:'Lucy'}
// (2).js 删除两个数组中某值相同的对象
let newArr = this.arr1.map(item => item.id);
// filter() 过滤掉包含/相同的元素
this.arr2 = this.arr2.filter( item => {
//includes() 用于判断字符串是否包含指定的子字符串
return !newArr.includes(item.id);
})
console.log(this.arr2); // [ {id: '3', name: 'Tom', age: '12'}]
// (3).js 数组对象去重(ES6方法)
this.arr3 = [...new Set(this.arr3.map(e => JSON.stringify(e)))].map(e => JSON.parse(e));
console.log(this.arr3); // { id:'1',name:'Eva', age:'10'},{ id:'2', name:'Lucy', age:'11'}
// (4) 数组去重(以下种方法不适合数组元素为对象或子数组的情况。)
var array = [1,2,3,3,4,5];
if(new Set(array).size !== array.length){ //判断是否有去重的元素
console.log("存在相同的元素",Array.from(new Set(array))); //去重处理
}else {
console.log("不存在相同的元素",array)
}
// (5) 数组name用,隔开
this.arr3 = this.arr3.map(value=>value.name).join(',')。//Eva,Lucy,Tom
},
methods:{ }
}
</script>
<style lang="scss" scoped>
</style>
【JS】数组处理(ES6)
于 2022-06-16 14:49:35 首次发布