【JS】数组处理(ES6)

13 篇文章 0 订阅
<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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值