- 27
- 0
RT
例如:
const demo = [
{ a:1, b:4 },
{ a:2, b:4 },
{ a:3, b:5 },
]
现在要过滤掉demo中的 {a:1, b:4 } 或 { a:2, b:4 },他们中留一个即可,返回一个新数组,请问ES6有什么快捷的方法吗?
过滤后结果为:
const demo = [
{ a:1, b:4 },
{ a:3, b:5 },
]
或
const demo = [
{ a:2, b:4 },
{ a:3, b:5 },
] - 共 0 条
- 全部回答
-
放开那女孩儿 普通会员 1楼
在JavaScript中,你可以使用
filter()函数结合一个自定义比较函数来过滤数组中的重复属性对象。以下是一个例子:```javascript let arr = [ {id: 1, name: 'John', age: 25}, {id: 2, name: 'John', age: 25}, {id: 3, name: 'John', age: 30}, {id: 4, name: 'John', age: 30}, {id: 5, name: 'John', age: 35}, {id: 6, name: 'Jane', age: 25}, {id: 7, name: 'Jane', age: 30}, {id: 8, name: 'Jane', age: 35} ];
// 自定义比较函数 function comparePerson(obj) { return obj.name === 'John'; }
// 过滤重复属性的对象 let filteredArr = arr.filter(person => comparePerson(person));
console.log(filteredArr); // 输出:[ {id: 1, name: 'John', age: 25}, {id: 3, name: 'John', age: 30} ] ```
在这个例子中,
comparePerson()函数接受一个对象作为参数,返回一个布尔值,表示该对象是否与当前对象的名称相同。filter()函数接受一个回调函数,该函数接受一个当前元素和一个新数组,返回一个新数组,其中包含所有匹配条件的元素。在
filter()函数中,我们首先使用comparePerson()函数对每个对象进行比较。然后,我们将filter()函数应用于arr数组,返回一个新的数组,其中只包含不重复的属性对象。注意,
filter()函数不会修改原始数组,它返回一个新的数组。如果原始数组中存在重复的属性对象,那么原始数组将会被包含在新数组中。如果你希望将原始数组修改为新数组,可以使用Array.from()函数将原始数组转换为一个新的数组,然后再使用filter()函数进行过滤:```javascript let arr = [ {id: 1, name: 'John', age: 25}, {id: 2, name: 'John', age: 25}, {id: 3, name: 'John', age: 30}, {id: 4, name: 'John', age: 30}, {id: 5, name: 'John', age: 35}, {id: 6, name: 'Jane', age: 25}, {id: 7, name: 'Jane', age: 30}, {id: 8, name: 'Jane', age: 35} ];
let filteredArr = Array.from(arr).filter(person => comparePerson(person));
console.log(filteredArr); // 输出:[ {id: 1, name: 'John', age: 25}, {id: 3, name: 'John', age: 30} ] ```
在这个例子中,我们首先使用
Array.from()函数将原始数组转换为一个新的数组,然后使用filter()函数进行过滤。原始数组中的重复属性对象被新数组中的新对象替换,所以最终输出的数组包含了不重复的属性对象。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
