Как удалить ложные значения из массива? - PullRequest
0 голосов
/ 01 октября 2019

Я получаю это в консоли

0: false
1: false
2: false
3: false
4: false
5: "scuole"
6: "scuole"
7: "scuole"
8: "scuole"

Мне нужно удалить все false, и я пытался выполнить это на SO

, и я попытался

    var scuole = [];
    function bouncer(scuole) {
      return scuole.filter(item => item);
    }
    bouncer([false, null, 0, NaN, undefined, ""]);
    console.log(scuole);

Но я все еще вижу false в консоли

Ответы [ 6 ]

1 голос
/ 01 октября 2019

Проверьте комментарии для объяснения.

var scuole = []

function bouncer(scuole) {

// .filter returns a new filtered array and in following case
// filtered array will return an array whos value is 
// not equal to false 

     return scuole.filter(item => item !== false);

 }

//when calling bouncer function which returns an array
// we need to store that returned array to scuole variable
// for future use.
scuole = bouncer([false, null, 0, NaN, undefined, ""]);

// expected result [ null, 0, NaN, undefined, ""]
console.log(scuole);
1 голос
/ 01 октября 2019

Array.filter возвращает новый массив, поэтому вам нужно будет присвоить его новой переменной. Также вы в настоящее время не фильтруете, вы не обрабатываете элемент. Попробуйте это:

var someArray = [true, true, false, true];

function bouncer(array) {
return array.filter(item => item !== false);
}

var otherArray = bouncer(someArray);
// expected output: [true, true, true]

Посмотрите документацию

0 голосов
/ 01 октября 2019
 var scuole = [false, null, 0, NaN, undefined, ""];
scuole=  scuole.filter(item =>item!=false ||item!='false');
console.log(scuole);

вы можете сделать это ...

0 голосов
/ 01 октября 2019

Вы можете просто использовать функцию JavaScript "filter", которая вернет вам отфильтрованный массив. Обратите внимание, что фильтр не будет обновлять исходный массив, поэтому вам нужно перехватить фильтрованный массив в другом массиве.

В соответствии с фрагментом, я возвращаю значения, кроме false. Дайте мне знать, если у вас есть другие вопросы или сомнения.

var original_arr = [false, null, 0, NaN, undefined, ""]
var filtered_arr = original_arr.filter(function(item){return item != false})
console.log(filtered_arr);
0 голосов
/ 01 октября 2019

Это должно работать:

const arr = [ false, null, NaN, 0, undefined, true, 'string', 1, 'text', 4.3, '']; 
const newArr = arr.filter(e => e)

Должно распечатать: [ true, 'string', 1, 'text', 4.3 ]

0 голосов
/ 01 октября 2019

Вы можете использовать Boolean для очистки всех ложных значений массива.

const cleaned = [false, null, 0, NaN, undefined, ""].filter(Boolean);
// return "[]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...