У меня есть следующая реализация.Как удалить пустой элемент в массиве javascript?
Array.prototype.abc = function(condition, t){
var arr = [];
for(var i = 0; i < this.length; i++){
arr.push(condition(this[i],t));
}
return arr;
};
var a = [1,2,3,4];
var t = 2;
alert(a.abc(function(item,diviser){
if(item % diviser === 0) { return item; }
},t));
Результат должен быть [2,4]
. Вместо этого я получаю [,2,,4]
.
Я пробовал следующие условия, но всегда возвращает результат выше.
if(condition(this[i],t) !== false){ arr.push(condition(this[i],t)); }
Это я делаю, когда я делаю
if(item % diviser === 0) { return item; } else { return false; }
Состояние false
оленья кожа работа для 'false'
или true
или 'true'
или в этом отношении любого значения я возвращаюсь в остальное части. Однако в фактической реализации у меня нет части else
. Я знаю, что мы можем использовать splice
или что-то, чтобы удалить пустые разделы. Но я не понимаю, даже если я не верну ничего, кроме пустого в создании. И даже после использования, если условие до arr.push
не работает. Что именно происходит и как удалить пробелы в массиве?
Я пытался сравнить с '! == false', когда я возвращаю' else {return false; } '. Но это не работает. Почему это так? – Sp0T
ОК. Благодарю. понял теперь. – Sp0T
@ Sp0T Осторожно об этом фрагменте, 'condition (this [i], t) && arr.push (this [i]);' Это будет игнорировать '0', если он есть в вашем основном массиве. –