js判断一个数组,如果数组长度大于1,并且每一项里面的某一个字段值相等,那么只保留数组最后一个
时间: 2024-10-25 20:18:51 浏览: 24
在JavaScript中,如果你想要判断一个数组满足长度大于1且所有元素的某个特定字段值都相等的条件,可以按照以下步骤操作:
首先,你可以使用`Array.prototype.every()`方法检查数组的所有元素是否都具有相同的指定属性值。这个方法会返回一个布尔值,表示给定函数(在这个例子中是一个比较函数)是否对数组中的每个元素都成立。
然后,你可以结合数组的`length`属性和`slice()`方法来实现保留最后一个元素的需求。`slice(-1)`用于获取数组的最后一个元素,如果数组长度大于1,则其余元素会被截断。
下面是一个示例函数来实现这个功能:
```javascript
function keepLastIfAllSame(arr, field) {
// 检查所有元素的指定字段是否相等
const allEqual = arr.every(function(item) {
return item[field] === arr[0][field];
});
// 如果所有元素的字段值相等且数组长度大于1
if (allEqual && arr.length > 1) {
return [arr[arr.length - 1]]; // 只保留最后一个元素
} else {
return arr; // 否则返回原始数组
}
}
```
你可以像这样使用这个函数:
```javascript
let array = [
{name: 'John', age: 30},
{name: 'John', age: 30},
{name: 'Jane', age: 25}
];
console.log(keepLastIfAllSame(array, 'age')); // 输出:[{name: 'John', age: 30}]
```
阅读全文