我有一个这样的对象数组
let arr = [{
user: 1,
details: 'sample' },
{
user: null,
details: 'sample' },
{
user: 3,
details: 'sample' }];
我想过滤掉空用户。但是当我尝试映射数组时,我得到了这个结果。
[user1, [], user3]
我想摆脱[]
,以便获得正确的数据和长度。如何用Javascript实现?
答案 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)
答案 6 :(得分:0)
希望这会对您有所帮助。
var arr = [{ user: 1, details: 'sample' }, { user: null, details: 'sample' }, { user: 3, details: 'sample' }];
var result = arr2.filter(el => el.user !== null);