取消设置 javascript 数组
Posted
技术标签:
【中文标题】取消设置 javascript 数组【英文标题】:unset javascript array for 【发布时间】:2012-08-11 23:49:27 【问题描述】:我已经尝试了好几个小时,我认为这真的很简单;
使用 javascript 我基本上想遍历一个数组,获取索引的当前值,然后从数组中取消设置这个值。我发现 splice() 应该可以解决这个问题,但是我似乎无法清空数组,数组上总是剩下一个值
var filtered = array("up", "down", "left");
function resetTags()
var length = filtered.length;
for(i=0; i <= length; i++)
filtered.splice(i,1);
编辑::
我会尝试更详细地解释一下:
我基本上是在尝试跟踪获得的选定类值的列表 从单击项目开始: var 过滤 = 数组();
jQuery("li a").click(function ()
tag = jQuery(this).text();
addFiltered(tag);
);
function addFiltered(param)
var inArray = jQuery.inArray(param,filtered);
if(inArray > -1)
//param is in array, so we want to remove it from the filtered array
filtered.splice(index, 1);
);
else
//param isn't in array, so we want to add it to the array
filtered.splice(0, 0, param);
);
【问题讨论】:
我刚刚运行了上面的代码,并没有在数组上留下任何值。我确实将 array() 更改为 ["up", "down", "left"] 所以它可能是你的函数 array() 正在做的事情。 【参考方案1】:我基本上是想遍历一个数组,获取当前值 索引,然后从数组中取消设置该值。
for(i=0; i <= length; i++)
filtered.splice(i,1);
我认为您没有明确定义(或者可能不知道)您想要做什么。
您是否正在尝试编写 pop(n)
方法:
var a = [1,2,3,4]
var result = pop(3, a)
result == [ 1, 2, 4]
或者你只是想遍历一个数组并每次都取出第一个元素?如果是这样,你做错了。那只是一个shift()
var filtered = ["up", "down", "left"]
for(i = 0 ; i<= filtered.length; i++)
alert(filtered);
filtered.shift();
alert(filtered);
【讨论】:
【参考方案2】:嗯,你在增加。你试过递减吗?
var filtered = new Array("up", "down", "left");
function resetTags()
var length = filtered.length;
for(i = length; i >= 0; i--)
filtered.splice(i,1);
这应该确保最终元素被拼接。
【讨论】:
【参考方案3】:逐个删除项目:
var a = [1,2,3,4,5];
while (a.length > 0) a.拼接(0,1);
http://jsfiddle.net/89hkH/
【讨论】:
【参考方案4】:数组定义不正确。这就是代码没有执行的原因
var filtered = ["up", "down", "left"];
function resetTags()
var length = filtered.length;
for(i=0; i <= length; i++)
filtered.splice(i,1);
【讨论】:
var filtered = ["up", "down", "left"];
与var filtered = array("up", "down", "left");
相同【参考方案5】:
如果要清空数组,直接设置为空数组:
filtered = [];
如果您想在清空数组之前使用这些值,只需在此之前迭代而不删除值并在完成后将其清除。
搞乱复杂的解决方案你能得到什么?
【讨论】:
以上是关于取消设置 javascript 数组的主要内容,如果未能解决你的问题,请参考以下文章