簡體   English   中英

如何在jquery / javascript中的鍵/值數組中的特定點插入鍵值對?

[英]How do I insert a key value pair at a specific point in a key/value array in jquery/javascript?

如果我有鍵值數組對象,希望有人可以在jquery中提供幫助

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

如何在特定點插入另一個鍵值對? 例如myArray ['key4'] ='value4'; 在key3和(或之前)key3之間(或之后)?

謝謝

ECMAscript 對象中沒有保證的順序,因此,無法在特定點插入新的鍵/值對。

請改用數組

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'];

您擁有的是一個對象( {} ),而不是一個數組( [] )。 對象中的鍵沒有確定的順序,因此您不能在特定點插入鍵。 它們只是該對象的屬性。

感謝您的投入。 我希望它們等同於拼接我錯過的對象。 顯然不是,所以我訴諸好的舊地圖並進行了重建。

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;
}

如果它們是插入對象的更好方法,請隨時告訴我。

這樣做,使用對象:

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

添新:

myArray.key3 = "value3";

這可能對您有所幫助:

arr.splice將為現有數組添加一個新值

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

正如jAndy所說,如果要特定順序,請使用數組。

或者,如果鍵具有可排序的名稱(如示例中所示),則可以在使用前對鍵進行排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM