2

キー値配列オブジェクトがある場合、誰かがjqueryで助けてくれることを願っています

    var myArray= {};
    myArray['key1'] = 'value1';
    myArray['key2'] = 'value2';
    myArray['key3'] = 'value3';
    myArray['key5'] = 'value5';
    myArray['key6'] = 'value6';

特定のポイントに別のキーと値のペアを挿入するにはどうすればよいですか? 例 myArray['key4'] = 'value4'; key2 の間 (または後) と key3 (または前) の間?

ありがとうございました

4

6 に答える 6

5

ECMAscript Objectsには順序が保証されていないため、特定の時点で新しいキーと値のペアを挿入する方法はありません。

代わりに配列を使用してください。

var arr = ['value1', 'value2', 'value3', 'value4', 'value5', 'value6'];

arr.splice(2, 0, 'new value');

console.log( arr ); // ['value1', 'value2', 'new value' 'value3', 'value4', 'value5', 'value6'];
于 2013-03-12T11:54:54.600 に答える
2

あなたが持っているのはオブジェクト({})であり、配列( )ではありません[]。オブジェクトのキーには順序が保証されていないため、特定のポイントにキーを挿入することはできません。それらはそのオブジェクトの単なるプロパティです。

于 2013-03-12T11:55:52.387 に答える
1

入力ありがとうございます。私はそれらが私が逃したオブジェクトのスプライスと同等であることを望んでいました。明らかにそうではないので、古き良き地図に頼って再構築しました。

function objectInsertafterkey(object, newKey, newVal, insertAfterkey){
newObject={};
$.map(object, function(value, key) {    
if(key == insertAfterkey){
newObject[key] = value;
newObject[newKey] = newVal;
}
else
{
newObject[key] = value;
}
});
return newObject;
}

それらがオブジェクトに挿入するためのより良い方法である場合は、私に知らせてください。

于 2013-03-12T13:40:47.317 に答える
0

このようにして、オブジェクトを使用します。

 var myArray = {key1: value1, key2: value2};

新しく追加する:

myArray.key3 = "value3";
于 2013-03-12T11:59:22.717 に答える
0

これはあなたを助けるかもしれません:

arr.splice は既存の配列に新しい値を追加します

http://www.w3schools.com/jsref/jsref_splice.asp

于 2013-03-12T12:06:16.300 に答える
-1

jAndy が言うように、特定の順序が必要な場合は、配列を使用してください。

または、並べ替え可能な名前がある場合は、使用する前にキーを並べ替えることができます (例のように)。

于 2013-03-12T11:57:14.143 に答える