根据对象数组中某一属性删除该项
时间: 2024-04-29 09:24:42 浏览: 146
您可以使用 JavaScript 的 filter() 方法来删除对象数组中的某一属性。例如,在以下代码中,我们要删除对象数组 items 中所有 age 属性为 18 的项:
```javascript
var items = [
{ name: 'John', age: 20 },
{ name: 'Mary', age: 18 },
{ name: 'Steve', age: 18 },
{ name: 'Jane', age: 22 }
];
items = items.filter(function(item) {
return item.age !== 18;
});
```
执行以上代码后,items 数组将只保留两项:
```
[
{ name: 'John', age: 20 },
{ name: 'Jane', age: 22 }
]
```
相关问题
js当对象数组中有某一项的某值为空,就把这一项删掉
在JavaScript中,如果你有一个对象数组并且想要删除其中某个属性值为空的对象,你可以使用`filter()`方法结合条件判断来实现。以下是一个例子[^2]:
```javascript
let objArray = [
{name: 'John', age: 25},
{name: '', age: 30}, // 这里有一个对象的name为空
{name: 'Jane', age: null} // 还有这个对象的name不存在
];
// 使用filter()过滤出非空对象
let filteredArray = objArray.filter(obj => {
return Object.values(obj).some(value => value !== undefined && value !== null && value !== '');
});
console.log(filteredArray); // 输出:[{name: 'John', age: 25}, {name: 'Jane', age: null}]
```
在这个例子中,`filter()`遍历每个对象,对每个对象的值(通过`Object.values()`)应用`some()`,如果找到任何一个非空值(即不是`undefined`、`null`也不是空字符串`''`),则保留该对象。
js当对象数组中有某一项的name值为空,就把这一项删掉
要从对象数组中删除name值为空的对象,你可以使用JavaScript的`filter()`方法。`filter()`方法创建一个新数组,其中包含通过指定测试的所有元素。在这种情况下,我们可以创建一个条件,只保留那些`name`属性不为空的对象。
以下是删除对象数组中`name`值为空的项的代码示例:
```javascript
// 原始对象数组
const arr = [
{ name: '王佳斌', age: '20' },
{ name: '', age: '15' },
{ name: '孙玉红', age: '30' }
];
// 使用 filter() 删除 name 值为空的对象
const filteredArr = arr.filter(obj => obj.name !== '');
console.log(filteredArr);
// 输出:[
// { name: '王佳斌', age: '20' },
// { name: '孙玉红', age: '30' }
// ]
```
在这个例子中,`filter()`遍历数组中的每个对象,如果`obj.name`不是空字符串(即`!== ''`),则该对象会被包含在新的过滤后的数组`filteredArr`中。如果`name`值为空,则会被排除在外。
阅读全文