2012-08-07 146 views
0

我很好奇使用javascript中添加元素的關聯數組的具體位置內添加元素,關聯數組

var text=[{"key":"1", "value":"no"},{"key":"2", "value":"yes"} ]; 

如果我想在上面數組添加元素......說第二位置,

text[1].key="4"; 
text[1].value="test"; 

我已經試過這種方式,

test.splice(parseInt(1), 0); 
test[1].type="4"; 
test[1].value="test"; 
+0

你是什麼意思的「添加一個鍵」到第二個位置?你的意思是你想插入數組?無論如何,你需要提供你正在拼接的數組。將整數解析爲整數是多餘的。 – 2012-08-07 19:30:37

+0

是的..插入數據 – 2012-08-07 19:31:40

回答

0

以下是一些示例代碼(您可以在其中玩here):

function toString(array) { 
    var output = ''; 
    for(i = 0; i < array.length; i++) { 
     if(output != '') 
      output += ' - '; 
     output += array[i].key; 
    } 
    return output; 
} 

var array = [{"key":"1", "value":"no"},{"key":"2", "value":"yes"} ]; 

test = {"key":"4", "value":"test"}; 

alert(toString(array)); 
array.splice(1, 0, test); 
alert(toString(array)); 

array.splice()方法採用以下參數(從here截取):

array.splice(index,howmany,item1,.....,itemX) 
  • index:指定在什麼位置的整數添加/刪除項目,使用負值來指定從所述位置數組的末尾。
  • howmany:要刪除​​的項目數量。如果設置爲0,則不會刪除任何項目。
  • itemN:要添加到數組的新項目。

EDIT

要從該陣列可以以下面的方式使用相同的splice功能的元件:

array.splice(1, 1); 
alert(toString(array)); 

這裏我們指示splice在位置1,刪除1元素,但由於我們沒有提供任何元素插入,沒有插入,導致位置1上的單個元素被刪除。

+0

你能告訴我刪除元素的方法嗎? – 2012-08-07 20:04:11

+0

剛剛編輯答案以顯示刪除元素(也更新了JSFiddle示例)。希望能幫助到你! – 2012-08-07 20:13:54

+0

是的..謝謝!!!!!! – 2012-08-07 20:26:05

0

添加元素到數組的末尾,您將使用.push()

text.push({key: 4, value: "no"}); 

插入陣列中的[0][1]項目之間的項目,你可以使用.splice()

text.splice(1, 0, {key: 4, value: "no"}); 

或者,插入一個空的對象,然後填充它:

text.splice(1, 0, {}); 
text[1].key = 4; 
text[1].value = "no"; 
+0

,但這不會將元素添加到第二個位置...我想添加元素到一個特定的位置.. – 2012-08-07 19:33:31

+0

@SamDaSilva-你留下了一些與術語「第二位置」混淆爲'[[ 2]'將是數組的結尾。無論如何,我已經添加了另一個選項來將我的答案插入到數組的中間。 – jfriend00 2012-08-07 19:35:19