我有一个包含两个数组的 javascript 对象。有时其中一个数组可能为空。我正在尝试通过递归函数遍历对象,但我不希望任何为空或空字符串的数组进入循环。到目前为止我所拥有的是产生错误Typeerror: obj.filter is not a function
。
注意:在这个例子中,obj 里面有两个数组,但实际上,它可以是我传递给函数的任何东西。
var obj = {
selected: [ "value1", "value"2],
unselected: []
}
function clearAndSetSelectElement($elem, obj, isEmpty) {
if(isEmpty) $elem.empty(); //empty the select element if it isn't empty
$.each(obj.filter(function(v){return v != null}), function() { //filter out empty arrays or empty strings
if(this instanceof Array) clearAndSetSelectElement($elem, this, false); //if this is an array make recursive call
$elem.append("<option />").val(this).text(this)); //append value to select element
});
}