繁体   English   中英

Javascript使用splice()删除数组上的项目不起作用

[英]Javascript remove item on array using splice() not working

所以我有一个像这样的数组 var arr = [foo1:"bar1", foo2:"bar", foo3:"bar3"]

然后我使用了这个arr.splice(index, 1); 给定index是动态的,只说它是0但没有从数组中删除值foo1:"bar1"

上面的数组也可以在我的代码上使用,但是在JSFiddle上显示错误。 我不知道为什么。

谢谢。

编辑我不知道为什么它在控制台上没有显示错误,但是这是我的操作方法。

var arr = [];

我通过这样做为数组动态增加了价值

arr["foo"] = "bar";

结果是[foo:"bar"];

有想法吗?

编辑2

这是控制台的屏幕截图。 在此处输入图片说明

该数组的结构无效。

var arr = [foo1:"bar1", foo2:"bar", foo3:"bar3"];

数组将在方括号[]包含逗号分隔的项目,而不是键值

如果要具有键值,则应为大括号{}对象

var arr = {foo1:"bar1", foo2:"bar", foo3:"bar3"};

如果要从arr删除第一个属性,请执行

var keys = Object.keys( arr );
delete arr[ keys[ 0 ] ];

要添加键值,

arr[ "foo5" ] = "bar";

很长的路要走:

var arr = [];

var foo1 = {};
foo1['foo1'] = 'bar1';

var foo2 = {};
foo1['foo2'] = 'bar2';

arr.push(foo1);
arr.push(foo2);

alert(arr.length); // output: 2

var index = arr.indexOf(arr, foo1); // or var index = $.inArray(arr, foo1);
arr.splice(index, 1);

alert(arr.length) // output: 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM