Json Angularjs$范围数组对象重新排列

Json Angularjs$范围数组对象重新排列,json,angularjs,Json,Angularjs,我有一个json数组,分配给一个$scope对象,在前端显示。我想根据给定的id重新排列这个数组。 这就是我的初始数组的外观 $scope.listData = [{ id: 1, name: adam, title: testing title, description: testing description }, { id: 2, name: zampa, title: testing title, description: testing description }, { id: 3,

我有一个json数组,分配给一个$scope对象,在前端显示。我想根据给定的id重新排列这个数组。 这就是我的初始数组的外观

$scope.listData = [{
id: 1,
name: adam,
title: testing title,
description: testing description
},
{
id: 2,
name: zampa,
title: testing title,
description: testing description
},
{
id: 3,
name: Aaron,
title: testing title,
description: testing description
}]
对于重新排列,例如,如果给定的id为3,则记录的重新排列应类似于3,1,2

我尝试过使用angular.forEach循环,但没有成功。

以下是使用and的解决方案:


完整代码段:

const listData=[{
id:1,
名字:'亚当',
标题:“测试标题”,
描述:“测试描述”
},
{
id:2,
名称:“zampa”,
标题:“测试标题”,
描述:“测试描述”
},
{
id:3,
姓名:'亚伦',
标题:“测试标题”,
描述:“测试描述”
}
];
函数moveToFront(id,数组){
常量i=array.findIndex(v=>v.id==id);
数组.反移位(…数组.拼接(i,1));
}
移动到前端(3,列表数据);

console.log(listData)//假设它最初是按id排序的,从frm one开始

listData.splice(0, 0, listData.splice(id - 1, 1)[0]);

所以您只想将具有给定ID的项移动到数组的开头?正确。只需重新排列,不需删除,不需删除。unshift函数只需返回一个数字,而不返回数组。@ShaurBinTalib该函数可就地修改数组(根据问题的要求)。没有必要归还任何东西。是的,我拿到了。按照我的要求,它工作得很好。感谢您返回空的arraylistData本身已更改,但这只会工作一次。第二次ID的顺序会有所不同。是的,这就是问题所在。然而,我得到了我的答案。谢谢你的帮助。你说得对,但是,没有删除,只有重新排列的想法是不对的,数组总是有新的副本,不管怎样,问题解决了
listData.splice(0, 0, listData.splice(id - 1, 1)[0]);