[英]Destructuring an array of objects
我想根据某些键/值对过滤现有的对象数组。 在下面的示例中,我希望结果是一个只有id和def字段的对象的新数组(假定对象中可以有n个字段,因此我不想显式删除abc)。 但是,如果我像下面这样编码,则看起来必须手动逐行手动构建新数组。 有没有更简单的单线服务?
const someArray = [
{id: 1, abc: 2, def: 3},
{id:4, abc: 6, def: 8},
{id: 5, abc: 7, def: 9},
];
const [array0, array1, array2] = someArray;
const onlyOneRow = (({ id, def }) => ({ id, def }))(array0);
这可以通过map()方法轻松生成:
const someArray = [ {id: 1, abc: 2, def: 3}, {id:4, abc: 6, def: 8}, {id: 5, abc: 7, def: 9}, ]; let res = someArray.map(x => {return {id: x.id, def: x.def}}); console.log(res);
您可以使用filter
来构建满足您需要的新阵列。 考虑以下示例:
var array1 = [
{id: 1, abc: 2, def: 3},
{id:4, abc: 6, def: 8},
{id: 5, abc: 7, def: 9},
];
// pass a function to filter
const filteredArray = array1.filter(({id,def}) => x.id == 4);
console.log(filteredArray);
// expected output: Array [{id:4, abc: 6, def: 8}]
如果您需要更改此过滤数组中的值,则可以使用map:
const mappedArray = output.map(x => {id: x.id, def: x.def});
console.log(mappedArray);
// expected output: Array [{id:4, def: 8}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.