javascript - 如何从特定数组中获取新数组
问题描述
如何从特定数组中获取新数组?
我不知道如何处理这样的数组:
let arr1 = [
{name: 'a', age: 1},
{name: 'a', age: 2},
{name: 'a', age: 3},
{name: 'b', age: 1},
{name: 'b', age: 2}
{name: 'b', age: 3}
{name: 'c', age: 1}
{name: 'c', age: 2}
...
]
“我想要这个结果:从每个相同的项目中name
,选择最大的age
价值”
let arr2 = [
{name: 'a', age: 3},
{name: 'b', age: 3},
{name: 'c', age: 2}
...
]
解决方案
只需使用filter
来选择age
其name
.
let arr1 = [{name:'a',age:1},{name:'a',age:2},{name:'a',age:3},{name:'b',age:1},{name:'b',age:2},{name:'b',age:3}];
const biggest = arr1.reduce((a, { name, age }) => {
a[name] = a[name] || age;
age > a[name] ? a[name] = age : a[name];
return a;
}, {});
let arr2 = arr1.filter(({ name, age }) => biggest[name] == age);
console.log(arr2);
.as-console-wrapper { max-height: 100% !important; top: auto; }
推荐阅读
- wordpress - sprintf 与 __() 翻译和 javascript
- java - 需要帮助解释这个素数程序是如何工作的
- java - 如何将助焊剂链接到另一个助焊剂/单声道并施加另一个背压?
- java - 偶数索引为正数,奇数索引为负数的程序
- python - gTTS(谷歌文本到语音)模块的python代码错误
- java - Android:无法发出位置请求对话框并在回调时获取位置
- python - python3中的迷宫
- python - 使用范围作为字典中的键值,最有效的方式?
- java - 为什么这段代码会抛出 ClassCastException?
- c++11 - 减法在宏定义中如何工作