替换/删除数组中的空条目
Posted
技术标签:
【中文标题】替换/删除数组中的空条目【英文标题】:Replace/remove empty entries in Array 【发布时间】:2012-06-13 06:32:19 【问题描述】:我有这个数组:[home, info, mail,,,, something, stuff, other]
但我想删除或替换 ,,
为 ,
我试过了:allIDs.replace(",,", ",");
但它似乎不适用于数组
有空条目的原因是这样的:
$(document).find('DIV').each(function()
allIDs.push(this.id); )
我正在索引所有 DIV 的 ID 名称,以检查是否有重复,然后重命名当前生成的 DIV ID..
或者,我只想find()
只定义了 ID 的 DIV..
【问题讨论】:
【参考方案1】:改用$('div[id]')
。它将选择所有定义了id
属性的div
元素。
【讨论】:
【参考方案2】:这真的很好用:
theArray = theArray.filter(function(e) return e; );
【讨论】:
【参考方案3】:将您的id
聚会更改为此...
var allIDs = $(document).find('DIV')
.map(function() return this.id || undefined )
.toArray();
如果 DIV
上没有 ID,则将返回 undefined
,并且不会将任何内容添加到结果数组中。
【讨论】:
【参考方案4】:您想要的是从数组中删除空值,而不是用 ,
替换 ,,
我想。
试试here
【讨论】:
【参考方案5】:尝试仅获取已定义 ID 的 div
s:
$(document).find('div[id]').each(function()
allIDs.push(this.id); );
);
但是如果你想清理数组:
allIDs = clean_up(allIDs);
function clean_up(a)
var b = []
for(i in a) if(a[i] && a[i].length) a.push(a[i]);
return a;
【讨论】:
【参考方案6】:在 javascript 中,不能只删除数组中的 ',,,' 来解决问题。
你的意思是数组 ['home', 'info', '', '', '', '', 'mail', 'something', 'stuff', 'other']?
假设有一些空字符串,你想删除它们。
你可以使用一个简单的javascript函数:
allIDs = ["home", "info", "", "", "", "", "mail", "something", "stuff", "other"];
remove_empty_str = function(arr)
new_array = [];
for (ii = 0, len = arr.length; ii < len; ii++)
item = arr[ii];
if (item !== "" || item !== null || item !== (void 0))
new_array.push(item);
return new_array;
;
newIDs = remove_empty_str(allIDs);
alert(newIDs);
我认为在执行任何 jQuery 输出之前处理数组是更好的做法。
您也可以在其他应用中重复使用 remove_empty_str()。
【讨论】:
以上是关于替换/删除数组中的空条目的主要内容,如果未能解决你的问题,请参考以下文章