var arr = [
{name: '张三', age: 10, sex: '男'},
{name: '李四', age: 10, sex: '男'},
{name: '钱五', age: 11, sex: '女'},
{name: '赵六', age: 12, sex: '女'},
{name: '王七', age: 10, sex: '男'},
]
// // 针对arr,根据相同的age 得出如下结果:
// result = [
// {name: '混合装大保健', age: '******', sex: '你猜', children: [
// {name: '张三', age: 10, sex: '男'},
// {name: '李四', age: 10, sex: '男'},
// {name: '王七', age: 10, sex: '男'},
// ]},
// {name: '钱五', age: 11, sex: '女'},
// {name: '赵六', age: 12, sex: '女'},
// ] // Ⅰ:解(8号技师为你服务):
let obj = {};
for( let item of arr){
if( !obj[`${ item.age }`]){
obj[`${ item.age }`] = {
name: item.name,
age: item.age,
sex: item.sex,
children: [ item],
}
}else {
obj[`${ item.age }`]['children'].push( item);
}
}
let _newArr = Object.values( obj); // 通过Object.values() 得出以属性值为基准的集合。例如:var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.values(obj)); // 得出 ['a', 'b', 'c']
// console.log('~~ 看看:', _newArr);
// 得出如下结果:
// [
// {
// "name": "张三","age": 10,"sex": "男","children": [
// {"name": "张三","age": 10,"sex": "男"},
// {"name": "李四","age": 10,"sex": "男"},
// {"name": "王七","age": 10,"sex": "男"}
// ]
// },
// {"name": "钱五","age": 11,"sex": "女","children": [
// {"name": "钱五","age": 11,"sex": "女"}
// ]
// },
// {"name": "赵六","age": 12,"sex": "女","children": [
// {"name": "赵六", "age": 12,"sex": "女"}
// ]
// }
// ] // ...Ⅱ:进一步处理(贵客请进屋)。如果age只存在一个,那么将该信息中的children删除;并对非一个的信息行做处理。
_newArr.forEach( item => {
if( item.children.length === 1 && item.age === item.children[ 0].age) {
delete item.children;
}else {
item.name = '混合装大保健';
item.age = '******';
item.sex = '你猜';
}
});
// console.log('最后看下:', _newArr); // 得出结果即为上述所说。

  

JS——如果数组中的信息存在多个相同的属性,那么则将这些相同的信息放到同一个children中。的更多相关文章

  1. eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?

    eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...

  2. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  3. js从数组中删除指定值(不是指定位置)的元素

    RT: js从数组中删除指定值的元素,注意是指定值,而不是指定位置. 比如数组{1,2,3,4,5},我要删除其中的元素3,但是这个3的位置我是不知道的,只知道要删除值为3的这一个元素,请问要怎么写? ...

  4. js删除数组中元素的方法

    一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...

  5. js将数组中一个或多个字段相同的子元素中合并

    最近js中遇到js将数组中一个或多个字段相同的子元素中合并,相信很多朋友也有遇到,大家可能有多种方法,我在这里记录一个相对简单的方法,当然大家如有其它更好的方法,请提出来大家共同学习. //将经济事项 ...

  6. 字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

    输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 ...

  7. js对象数组中的某属性值 拼接成字符串

    js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六' ...

  8. js限制输入数字能输入小数点,js定义数组,js往数组中添加数据,js将字符型转为数字型,除法结果保留两位小数——js小测:计算比赛得分

    一个朋友跟我说要去给某个比赛算分: 规则:去掉最低分最高分求平均分: 最近在学习大数据可视化——图谱,用到js一些东西,所以今天就用js练练 用到知识点: js限制输入数字能输入小数点,js定义数组, ...

  9. js 删除 数组中某个元素(转载)

    来源:https://www.jb51.net/article/134312.htm js删除数组中某一项或几项的几种方法 https://www.jb51.net/article/154737.ht ...

  10. js判断数组中是否包含某个元素

    参考:http://www.runoob.com/jquery/misc-inarray.html js判断数组中是否包含某个元素 $.inArray( value, array [, fromInd ...

随机推荐

  1. JZOJ 2934. 【NOIP2012模拟8.7】字符串函数

    题目大意 个等长的由大写英文字母构成的字符串 \(a\) 和 \(b\),从 \(a\) 中选择连续子串 \(x\),从 \(b\) 中选出连续子串y. 定义函数 \(f_{x,y}\) 为满足条件 ...

  2. Postgresql通过pg_waldump来分析pg_wal日志

    一.简介 读取MySQL的binlog 并将其解析为可读的日志是一件简单的事情,mysqlbinlog 命令就可以将bin日志解析, 那postgresql是否可以将pg_wal 中的日志进行解析,并 ...

  3. 单一资产VAR风险--基于python

    数据源:使用 AKShare包.它是一个免费.开源的 Python 财经数据接口包.网址https://www.akshare.xyz/index.html 一.获取数据: 计算日收益率: impor ...

  4. Linux操作命令(七) 1.cut命令 2.paste命令 3.tr命令

    1.cut 命令 常用参数 参数 描述 -b 以字节为单位进行分割 -c 以字符为单位进行分割 -d 自定义分隔符,默认为制表符 -f 自定义字段 --complement 抽取整个文本行,除了那些由 ...

  5. Spring cloud Alibaba Nacos服务注册发现和配置中心

    Nacos(官方网站:http://nacos.io)是一个易于使用的平台,旨在用于动态服务发现,配置和服务管理.它可以帮助您轻松构建云本机应用程序和微服务平台. Nacos = Eureka + c ...

  6. HDFS存储流程及HA

    HDFS架构 主从(Master/Slaves)架构 由一个NameNode和一些DataNode组成 NameNode负责存储和管理文件元数据,并维护了一个层次型的文件目录树 DataNode负责存 ...

  7. ModuleNotFoundError:No module named 'past' 问题及解决方法

    训练YOLOX时报错 ModuleNotFoundError:No module named 'past' 解决方法 使用pip安装对应的package:future pip install futu ...

  8. [Unity]关于Unity中的触摸类Input.Touch以及简单的虚拟摇杆实现

    InputTouch 使用Unity开发的游戏大多是移动端游戏,而一些移动端游戏完全使用触摸操作而不是点击Button Unity使用Input.Touch来管理触摸操作 Input.TouchCou ...

  9. N63050 第十一周运维作业

    第十一周 就业和全程班小伙伴本周学习内容: 二十一.Mysql数据库二 1.MySQL的视图函数存储过程触发器和事件管理(64分钟) 2.MySQL用户和权限管理(40分钟) 3.MySQL架构和存储 ...

  10. N63050 第三周运维作业

    五.文本处理工具和正则表达式1.基本正则表达式(53分钟)2.基本正则表达式和扩展正则表达式(50分钟)3.文本处理三剑客之grep(43分钟)4.shell脚本编程基础知识(14分钟)5.shell ...