在Angular 8中,如果你想从数组中删除空对象,可以使用多种方法。以下是一些常见的方法:
filter
方法filter
方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
let array = [
{ id: 1, name: 'Alice' },
{},
{ id: 2, name: 'Bob' },
{},
{ id: 3, name: 'Charlie' }
];
array = array.filter(item => Object.keys(item).length !== 0);
console.log(array);
forEach
和 splice
方法这种方法会直接修改原数组。
let array = [
{ id: 1, name: 'Alice' },
{},
{ id: 2, name: 'Bob' },
{},
{ id: 3, name: 'Charlie' }
];
array.forEach((item, index) => {
if (Object.keys(item).length === 0) {
array.splice(index, 1);
}
});
console.log(array);
reduce
方法reduce
方法对数组中的每个元素执行一个由你提供的reducer函数(升序执行),将其结果汇总为单个返回值。
let array = [
{ id: 1, name: 'Alice' },
{},
{ id: 2, name: 'Bob' },
{},
{ id: 3, name: 'Charlie' }
];
array = array.reduce((acc, item) => {
if (Object.keys(item).length !== 0) {
acc.push(item);
}
return acc;
}, []);
console.log(array);
filter
和 reduce
可以使代码更加简洁易读。forEach
和 splice
方法时要注意索引的变化,因为 splice
会改变数组长度,可能导致跳过某些元素。filter
或 reduce
创建新数组可能会消耗更多内存。通过上述方法,你可以有效地从Angular 8中的数组中移除空对象。选择哪种方法取决于你的具体需求和偏好。
领取专属 10元无门槛券
手把手带您无忧上云