// 数组去重
{
const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,false,true,‘中文‘,‘‘,‘‘,‘hello‘,‘中文‘];
// 第一种
const r = [...new Set(arr)];
console.log(r); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"] // 第二种
const R = arr.reduce((all,name) => all.includes(name) ? all :[...all,name],[]);
console.log(R); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"] // 第三种
const k = arr.filter((item, i) => i === arr.indexOf(item));
console.log(k); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"]
} // 统计每个元素在数组中出现的次数
{
const arr = [‘zhangsan‘, ‘lisi‘, ‘wangwu‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘,‘zhaosi‘,‘liuneng‘];
const r = arr.reduce((all, name) =>{
if(name in all){
all[name]++
}else{
all[name] = 1;
}
return all;
},{});
console.log(r); // {zhangsan: 2, lisi: 2, wangwu: 2, zhaosi: 1, liuneng: 1}
} // 数组对象去重
{
const arr = [
{
name:‘zhangsan‘,
age:12
},
{
name:‘lisi‘,
age:14
},
{
name:‘zhangsan‘,
age:12
},
{
name:‘lisi‘,
age:14
},
{
name:‘zhangsan‘,
age:12
},
{
name:‘lisi‘,
age:14
},
{
name:‘zhangsan‘,
age:12
},
{
name:‘wangwu‘,
age:16
},
{
name:‘wagnwu‘,
age:16
},
{
name:‘lisi‘,
age:14
}, ] // 根据 age 去重
// 方法一
const age = ‘age‘;
const r = arr.reduce((all, next) => all.some((atom) => atom[age] == next[age]) ? all : [...all, next],[]);
console.log(r); }
//指定具体元素//删除id=5的
let arr = [
{ id: 1, name: '北京' },
{ id: 2, name: '上海' },
{ id: 3, name: '深圳' },
{ id: 4, name: '广州' },
{ id: 5, name: '青岛' }
]
arr.splice(arr.findIndex(item=>item.id==5),1)

//find方法用于查找第一个符合条件的数组成员,如果没有找到返回undefind
    let target = arr.find((item,index) => {
return item.id ==1
})
console.log(target)
//删除id大于3的(只保留小于等于3)
let arr2 = arr.reduce((total, current) => {
current.id<= 3 && total.push(current);
return total;
}, []);

  

//筛选去掉没有子组件的父组件 (parentId为0代表是父组件)
let arr = [
{
name:'1',
id:1,
parentId:0
},{
name:'3',
id:3,
parentId:0
},{
name:'2',
id:2,
parentId:0
},{
name:'1333',
id:13,
parentId:1
},{
name:'2444',
id:24,
parentId:2
}]
arr = arr.filter((x, index, self)=>{
// x : 数组每一项的值
// index: 每一项的下标
// self: 当前数组
return x.parentId!=0 || self.some((atom) => atom['parentId'] == x['id'] )
})

es6数组去重、数组中的对象去重 && 删除数组(按条件或指定具体元素 如:id)&& 筛选去掉没有子组件的父组件的更多相关文章

  1. vuejs利用props,子组件修改父组件的数据,父组件修改子组件的的数据,数据类型为数组

    博文参考 传送们点一点 父组件: <template> <div> <aa class="abc" v-model="test" ...

  2. Vue中利用$emit实现子组件向父组件通信

    Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow=& ...

  3. 九、React中的组件、父子组件、React props父组件给子组件传值、子组件给父组件传值、父组件中通过refs获取子组件属性和方法

    一.概述 React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. [父子组件]:组件的相互调用中,我们把调用者称为父 ...

  4. 从给数组中的对象去重看Javascript中的reduce()

    假设有这样一个数组: let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name ...

  5. java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重

    package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...

  6. vue 解决双向绑定中 父组件传值给子组件后 父组件值也跟着变化的问题

    说明: 近日开发中碰见一个很诡异的问题,  父组件动态的修改对象 data 中的值, 然后将这个对象 data 传给子组件, 子组件拿到后将 data 中的值 乘以 100 ,发现父组件中的值也跟着变 ...

  7. vue中父组件给子组件传值,子组件给父组件传值

    1.父组件传给子组件 父元素中 子元素中(通过props传值) 2.子组件传给父组件 子元素中(this.$emit(传过去的名字,传的参数)) 父元素中 通过changeShow的参数data 把修 ...

  8. 关于Vue中,父组件获取子组件的数据(子组件调用父组件函数)的方法

    1. 父组件调用子组件时,在调用处传给子组件一个方法 :on-update="updateData"   2. 子组件在props中,接收这个方法并声明 props: { onUp ...

  9. 【Vue项目笔记】—— 父子组件之间传递参数和子组件执行父组件中的方法

    父组件(MyBlog.vue) <template> <!-- Delete Modal --> <!-- 注意:这里的@deleteBlog中的deleteBlog要和 ...

  10. 小姐姐手把手教你JS数组中的对象去重

    有时候数据库中的数据重复的,我们另一个需求需要数据的唯一性 那么这时候就用到这个方法了  我还是以截图的方式发粗来  不然太丑了 见谅 console.log(map)打印出来的结果已经帮我们把需要的 ...

随机推荐

  1. CodeGym自学笔记07——入门Java书籍

    入门Java书籍 Head First Java Java:The Complete Reference,作者:Herbert Schildt   这本书对初学者也很有好处.与前一本书的主要区别在于素 ...

  2. react+routerv6搭建项目

    目标配置:React + Hook + React-router-v6 + Mobx + AntD: 1.创建项目 npx npx create-react-app 项目名称 2.安装sass环境,r ...

  3. pgsql中物化视图的使用

    1.创建物化视图 CREATE MATERIALIZED VIEW "view_xxx" as  select * from 表 2.刷新物化视图 refresh material ...

  4. gitlab-CICD共享runner基本配置

    gitlab-CICD共享runner基本配置 使用docker部署runner 多个项目使用共享runner 部署机器与runner不在同一台服务器上(使用ssh部署) 部署runner 部署镜像 ...

  5. 找vector最大最小《转载》

    定义了vector类型的数据,要找到其中的最大最小值,其实在C++中的algorithm头文件下就有直接的函数可以使用: #include <vector> #include <al ...

  6. 浅谈dfs深度优先搜索

    深度优先搜索(Depth First Search)是一种常见的暴力算法 此算法上限和下限较高,容易上手,适用情形多,学习性价比高 下限高于有固定的模板,且时间复杂度明显优于暴力枚举,容易拿到题目部分 ...

  7. js获取当天时间,凌晨0点

    凌晨0点 fields['startTime']=new Date(new Date(fields.searchTime2[0]).toLocaleDateString()).getTime() 当天 ...

  8. ATX server简介及环境搭建

    简介 atx server 是移动设备管理平台: 搭建这样的一个平台,需要  python3.x + nodejs+rethinkdb,及atxserver2和atxserver2-android-p ...

  9. pyinstaller根据虚拟环境virtualenv进行打包,降低exe文件大小

    问题:使用pyinstaller打包后,发现打的exe特别大,有近200M,又没有用几个库,代码也很少,怎么会打出这么大的包呢? 分析:在pyinstaller打包的过程中,可以看到窗口中出现了很多本 ...

  10. rust 配置国内源,加速

    [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" # 指定镜像 replac ...