如何解决当输入是属性值Javascript的数组时,从Array对象中删除具有相同属性值的对象
我有数组对象:
[
{
id: 1,name: ABC,age: 10
},{
id: 2,name: ABCXYZ,age: 20
},{
id: 3,name: ZYXCNA,age: 30
},...
...
....more
]
,数组是上面数组对象中id
的值:
[ 1,2]
然后,我希望上述数组对象中的数组对象的值不为id
。
例如:我将在这里收到的数组对象是
[
{
id: 3,{
id: 4,name: ABCDX,age: 30
}
]
我在这里使用3 for循环来解决此问题,但我认为可以采用更明智的方法。
就像在这里使用reduce
一样,但我仍然没有解决。谁能帮我?非常感谢。
解决方法
您可以使用Array.filter
和Array.includes
进行此操作。
const source = [
{
id: 1,name: 'ABC',age: 10
},{
id: 2,name: 'ABCXYZ',age: 20
},{
id: 3,name: 'ZYXCNA',age: 30
},{
id: 4,name: 'ABCDX',age: 30
}
];
const input = [ 1,2 ];
const output = source.filter(({ id }) => !input.includes(id));
console.log(output);
,
您根本不需要任何显式循环,您只需要过滤
var input = [
{
id: 1,name: "ABC",name: "ABCXYZ",name: "ZYXCNA",];
var ids = [1,2];
var result = input.filter(x => ! ids.includes(x.id));
console.log(result);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。