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. window 运行 jar包方式

    所有文件 1.将jar包指定为bat批处理文件,然后可以双击启动 新建start2.txt 编辑保存一下内容,修改start2.txt后缀为bat,点击运行(此方法当前命令窗口关闭后,程序也关闭) j ...

  2. vue .sync的理解

    假如父组件传给子组件的值,子组件接受之后,想要改变父组件传过来的值,就可以使用sync .sync是vue中用于实现简单的"双向绑定"的语法糖,在平时的开发中是非常使用的. vue ...

  3. PostGIS之空间投影

    1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...

  4. PostgreSQL建立索引时,如何避免写数据锁定

    先介绍一下Postgresql的建索引语法: CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ] ( ...

  5. AirTest

    1.环境 直接安装AirTest IDE 就可以了 2.连接手机 打开开发者模式,允许Usb调试,手机在电脑界面显示出来即可 3.Airtest辅助窗 4.Poco辅助窗 新建一个air文件 在poc ...

  6. loj3076

    参照 E_Space 的候选队论文,我们建出广义串并联图进行「删一度点」「缩二度点」「叠合重边」操作合并信息的表达式树. 我们把其描述成一颗 Leafy Tree. 我们不妨在每个叶节点处存一个点或者 ...

  7. JavaSE总结(2)

    控制语句idea.方法重载控制语句1.顺序结构从上到下从左到右依次执行2.判断结构    a.if(判断表达式){        语句体;    }    b.if(判断表达式){        语句 ...

  8. CSS:盒子_每个元素都有两个盒子(《CSS世界》笔记-块级元素)

    CSS:盒子_每个元素都有两个盒子(<CSS世界笔记>-块级元素) 1)CSS世界只有"块级盒子(block-level box)"和"内联盒子(inline ...

  9. 浅谈flume

    flume做日志收集的工具,将数据源导入到指定目标中.flume之间可以相互连接组件    source:如何从数据源中取数据,可以认为是两种主动source(主动取数据)和被动source(推给so ...

  10. java报错 SLF4J:Failed to load class "org.slf4j.impl.StaticLoggerBinder"

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artif ...