0

私はこのような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 
}

誰かが助けてくれることを願っています。

よろしく

4

4 に答える 4

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;
    }
 }
}
于 2012-04-30T08:23:02.740 に答える
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つ移動します。必要に応じてソート機能を微調整します。

于 2012-04-30T08:20:47.077 に答える
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');

http://jsfiddle.net/gaby/NGjXy/のデモ

于 2012-04-30T08:27:30.403 に答える
0

それらが配列にあると仮定すると、ここにデモがあります:

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;
        }
    }
}
于 2012-04-30T08:24:15.217 に答える