js 对象数组按照id排序
时间: 2023-06-15 15:03:12 浏览: 128
可以使用JavaScript的sort()方法来对对象数组按照id进行排序。
示例代码如下:
```javascript
let objArr = [
{id: 3, name: 'apple'},
{id: 1, name: 'orange'},
{id: 2, name: 'banana'}
];
objArr.sort((a, b) => (a.id > b.id) ? 1 : -1);
console.log(objArr);
```
输出结果:
```javascript
[
{id: 1, name: 'orange'},
{id: 2, name: 'banana'},
{id: 3, name: 'apple'}
]
```
在sort()方法中传入一个比较函数,根据比较函数的返回值来确定数组元素的顺序。比较函数返回1表示a在b后面,返回-1表示a在b前面。在这个例子中,比较的是每个对象的id属性。
相关问题
vue怎么使json数组按照ID排序
你可以使用JavaScript的sort方法对JSON数组进行排序,具体实现如下:
```javascript
var jsonArray = [
{ id: 3, name: 'Jenny' },
{ id: 1, name: 'Tom' },
{ id: 2, name: 'Alice' }
];
jsonArray.sort(function(a, b) {
return a.id - b.id;
});
console.log(jsonArray);
```
这里使用了sort方法,传入一个比较函数,比较函数返回值为负数时,a排在b前面,返回值为正数时,b排在a前面,返回0时,a和b位置不变。所以这里比较的是两个元素的id大小,从小到大排列。排序后的结果为:
```
[
{ id: 1, name: 'Tom' },
{ id: 2, name: 'Alice' },
{ id: 3, name: 'Jenny' }
]
```
你可以将这个排序函数应用到Vue组件中,绑定到需要排序的数组的v-for指令上的,这样就可以在页面上展示按照id排序的JSON数组了。
根据JavaScript中的另一个数组对对象数组进行排序
如果你要根据另一个数组对对象数组进行排序,你可以使用`Array.prototype.sort()`方法和`Array.prototype.findIndex()`方法来实现。以下是一个示例代码:
```javascript
const arr1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const arr2 = [3, 2, 1];
arr1.sort((a, b) => {
return arr2.findIndex(id => id === a.id) - arr2.findIndex(id => id === b.id);
});
console.log(arr1);
// Output:
// [
// { id: 3, name: 'Charlie' },
// { id: 2, name: 'Bob' },
// { id: 1, name: 'Alice' }
// ]
```
在这个示例中,我们首先定义了一个对象数组`arr1`和一个数字数组`arr2`。然后,我们使用`sort()`方法对`arr1`进行排序,其中回调函数返回`arr2.findIndex(id => id === a.id) - arr2.findIndex(id => id === b.id)`的结果,这意味着我们将根据`arr2`中元素的索引来比较`arr1`中的元素。我们使用`findIndex()`方法查找`a.id`和`b.id`在`arr2`中的索引。最后,我们将排序后的`arr1`输出到控制台上。
阅读全文