我有像这样的json对象
[
{ "id":"1", "item1":"item1 text","item2":"item2text","item3":"item3text" },
{ "id":"2", "item1":"item1 text","item2":"item2text","item3":"item3text" }
]
我的问题是我希望通过传递元素的id将id 2移动到第一个位置。喜欢
function movetotop(id){
//Code here to move id 2 to the top position
}
希望有人帮忙。
问候
答案 0 :(得分:4)
function moveIdToTop(jsonarray, id) {
for (var i = 0; i < jsonarray.length; ++i) {
if (jsonarray[i].id == id) {
var temp = jsonarray[i];
jsonarray.splice(i, 1);
jsonarray.unshift(temp);
break;
}
}
}
答案 1 :(得分:2)
如果您有一个对象数组,请使用sort方法:
var data = [
{ "id":"1", "item1":"item1 text","item2":"item2text","item3":"item3text" },
{ "id":"2", "item1":"item1 text","item2":"item2text","item3":"item3text" }
];
var sorted = data.sort(function(a, b) {
return a.id < b.id;
});
这将把2移到顶部。调整排序功能以满足您的需求。
答案 2 :(得分:0)
假设它们在数组中,here's a demo:
function popTop(arr, id) {
var i, al = arr.length;
dance: for (i = 0; i < al; i++) {
if (arr[i].id == id) {
arr.unshift(arr.splice(i, 1)[0]);
break dance;
}
}
}
答案 3 :(得分:0)
您需要从数组中提取元素并将其作为第一个重新插入。
var yourarray = [{ "id":"1", "item1":"item1 text","item2":"item2text","item3":"item3text" },
{ "id":"2", "item1":"item1 text","item2":"item2text","item3":"item3text" }];
function movetotop(id){
//Code here to move id 2 to the top position
var index = yourarray.map(function(element){return element.id;}).indexOf(id);
if (index > -1) {
var extracted = yourarray.splice( index,1 )[0];
yourarray.unshift(extracted);
}
}
与movetotop('2');