Простая функция для очистки массива, если он имеет нулевые или пустые значения, так что если мы имеем:Javascript массив чистой функции
[ 'click1', 'click2', null, '', '', 'submitForm' ]
... он вернется:
[ 'click1', 'click2', 'submitForm' ]
Вот мой код:
function squeakyClean(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] == null || arr[i] == '') {
arr.splice(i);
};
};
return arr;
}
у меня есть цикл, чтобы проверить каждое значение в массиве и, если заявление, чтобы увидеть, если она равна нулю или и пустая строка, если так я используемый метод сращивания массива для удаления значения, а затем возвращает чистый массив вне цикла for.
Он работает, если вы вводите массив без пустых строк или нулевых значений, но если я вхожу в [ 1, , 2, 3, 0, -1, 1.1 ]
, он возвращает [1]
, которого он не должен делать. Что мне здесь не хватает?
PS: Я посмотрел, как другие люди решили это использовать без использования метода loop и splice, но меня интересует, как его решить, используя эти два.
Может быть, это просто опечатка, но: Если ввести массив, как [не 1,, 3, 4] значение с индексом 1 массива (второе значение) будет ни null или пустая строка, но не определена. Если вы этого не хотите, вам нужно отфильтровать его (typeof arr [i] === 'undefined'). – RhinoDevel
Это правда, я об этом не думал. Но как только я изменил arr.splice (i) на arr.splice (i, 1), он полностью работает. Hmm – AntK