js 数组对象,把对象中某一元素为true的放在数组前面
时间: 2023-10-09 17:04:20 浏览: 133
可以使用`Array.prototype.sort()`方法来实现按照某一素排序的需求。体步骤如下:
1. 使用`Array.prototype.filter()`方法过滤出对象中某一元素为`true`的元素,并存储到一个新数组中。
2. 使用`Array.prototype.sort()`方法按照某一元素排序,将`true`元素排在前面。
3. 将原数组中剩余的元素添加到新数组的后面。
示例代码如下:
```javascript
const arr = [
{name: 'Alice', isTrue: false},
{name: 'Bob', isTrue: true},
{name: 'Charlie', isTrue: true},
{name: 'David', isTrue: false},
{name: 'Eve', isTrue: true}
];
// 过滤出 isTrue 为 true 的元素
const trueArr = arr.filter(item => item.isTrue);
// 按照 isTrue 排序,将 true 元素排在前面
trueArr.sort((a, b) => b.isTrue - a.isTrue);
// 将原数组中剩余的元素添加到新数组的后面
const result = [...trueArr, ...arr.filter(item => !item.isTrue)];
console.log(result);
// 输出:
// [
// {name: 'Bob', isTrue: true},
// {name: 'Charlie', isTrue: true},
// {name: 'Alice', isTrue: false},
// {name: 'David', isTrue: false},
// {name: 'Eve', isTrue: true}
// ]
```
在这个例子中,我们首先使用`Array.prototype.filter()`方法过滤出了`isTrue`为`true`的元素,得到了一个新数组`trueArr`。然后我们使用`Array.prototype.sort()`方法按照`isTrue`排序,将`true`元素排在前面。最后我们将剩余的元素添加到`trueArr`后面,得到了最终的数组。
阅读全文