如何删除过滤器中的空数组

时间:2020-07-19 06:51:14

标签: javascript reactjs

我有一个这样的对象数组

let arr = [{
 user: 1,
 details: 'sample' },
{
 user: null,
 details: 'sample' },
{
 user: 3,
 details: 'sample' }];

我想过滤掉空用户。但是当我尝试映射数组时,我得到了这个结果。

[user1, [], user3]

我想摆脱[],以便获得正确的数据和长度。如何用Javascript实现?

7 个答案:

答案 0 :(得分:2)

您可以尝试此操作,过滤器内的条件将检查每个项目内的用户是否为真实值。因此,额外的优势是您可以从原始数组中删除拥有undefined""null用户的用户

  const users = [
    { user: 1, details: "sample" },
    {user: null, details: "sample"},
    {user: 3, details: "sample"}
  ];

const result = users.filter((item) => item.user);
console.log(result);

答案 1 :(得分:0)

以下摘录来自w3docs

要从JavaScript数组中删除空元素,可以使用filter()方法,该方法将返回一个新数组,其中的元素通过回调函数的条件。

filter()方法创建一个数组,其中填充了所有通过测试的数组元素。要删除空值或未定义的值,请执行以下操作:

const array = [0, null, 1, "", 2, undefined, 2, , , , , 4, , 4, , 5, , 6, , , , ];
const arrFiltered = array.filter(el => {
  return el != null && el != '';
});
console.log(arrFiltered);

答案 2 :(得分:0)

 const data = ["user1", [], "user3"];
 const res = data.filter(
        (item) => item !== Array.isArray(item) && item.length
      );
 console.log(res);

首先检查您的元素是否为数组Array.isArray(item),然后检查数组是否具有长度,如果没有,则表示它为空,我们可以对其进行过滤。

答案 3 :(得分:0)

您可以使用:

var newArray = array.filter(value => Object.keys(value).length !== 0);

答案 4 :(得分:0)

const users = 
    [{
      user: 1,
      details: 'sample' },
    {
      user: null,
     details: 'sample' },
    {
     user: 3,
     details: 'sample' 
    }]

最简便的方法

const newUsers = users.filter(item => item.user)

答案 5 :(得分:0)

您可以使用类似的过滤器

  yourArr = yourArr.filter(element => element.user != null);

查看随附的图片,其中包含答案

example for using array filter method in javascript

答案 6 :(得分:0)

希望这会对您有所帮助。

var arr = [{ user: 1, details: 'sample' }, { user: null, details: 'sample' }, { user: 3, details: 'sample' }];
var result = arr2.filter(el => el.user !== null);
相关问题