2012-08-07 109 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