我会尽力正确地说出来 - 感谢您的帮助。
我有一个包含一系列邮政编码的数组,(例如六个)其中一个是空的。使用javascripts过滤器函数,我使用以下代码删除了空元素:
var filteredrad = radius1.filter(function(val) {
return !(val === "" || typeof val == "undefined" || val === null);
});
现在我需要以某种方式存储从原始数组中删除哪个元素的索引,但我不确定如何。
例如,过滤器会删除索引1处的空格。如何保存该号码以便稍后使用?
["WC1A 1EA", "", "B68 9RT", "WS13 6LR", "BN21TW", "wv6 9ex"]
希望有意义,任何帮助都会受到高度赞赏。
阿什利
答案 0 :(得分:5)
您可以使用filter
的{{3}}:
var removed = [];
var filteredrad = radius1.filter(function(val, index) {
if (val === "" || typeof val == "undefined" || val === null) {
removed.push(index);
return false;
}
return true;
});
答案 1 :(得分:0)
filter函数将三个参数传递给回调函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
所以你可以写:
var storedIndexes = []
var filteredrad = radius1.filter(function(val, index) {
val isNull = (val === "" || typeof val == "undefined" || val === null);
if(isNull){
storedIndexes.push(index);
}
return !isNull;
});
并将索引保存在storedIndexes
中答案 2 :(得分:0)
radius1 = ["WC1A 1EA", "", "B68 9RT", "WS13 6LR", "BN21TW", "wv6 9ex"];
removed = [];
var filteredrad = radius1.filter(function(val, index) {
if (val === "" || typeof val == "undefined" || val === null) {
removed.push(index);
return false;
}
return true;
});
答案 3 :(得分:0)
另一个以另一种方式做你想做的事的例子
var collection = ["WC1A 1EA", "", "B68 9RT", "WS13 6LR", "BN21TW", "wv6 9ex"] ;
var postalCodes = (function(){
var emptyIndices;
return {
getCodes: function( array ){
emptyIndices = [];
return array.filter(function( value, index, array ){
if( !value ){
emptyIndices.push(index);
return false;
}else{
return true;
}
});
},
getEmptyIdices: function(){
return emptyIndices || null;
}
};
})();
然后致电
postalCodes.getCodes(collection);
=> ["WC1A 1EA", "B68 9RT", "WS13 6LR", "BN21TW", "wv6 9ex"];
postalCodes.getEmptyIndices();
=> [1];