[英]How to remove empty elements from nested arrays
I have the following array named parsedAutor
and I need to remove the empty elements from the nested arrays.我有以下名为parsedAutor
数组,我需要从嵌套数组中删除空元素。
[
['John Doe', '', 'CPF 000.000.000-00'],
['30/05/2018 - Vara de Delitos de Roubo e Extorsão'],
['John Doe', '', 'CPF 000.000.000-00'],
['29/02/2016 - 1ª Vara Criminal'],
['John Doe', '', 'CPF 000.000.000-00'],
['18/02/2016 - 3º Juizado Especial Cível'],
['John Doe', '', 'CPF 000.000.000-00'],
['18/02/2016 - 3º Juizado Especial Cível']
]
How do I manage to do it?我该如何做到? I've been trying to map the elements and then filter them, but it's not working and I think I'm doing it wrong.我一直在尝试映射元素然后过滤它们,但它不起作用,我认为我做错了。
Here's what I've been trying to do.这就是我一直在尝试做的事情。
const autor = $('div[class="espacamentoLinhas"]').toArray();
let parsedAutor = autor.map((x) => x.children[2].data.trim());
console.log(parsedAutor);
parsedAutor = parsedAutor.map((x) => x.split('\n').map((y) => y.trim()));
console.log(parsedAutor);
// note that the code above is just to get the context from where I taking the values, please focus on the code below
const filteredAutor = parsedAutor.map((x) => {
x.filter((y) => y !== '');
});
console.log(filteredAutor);
But it returns me eight undefined
values, what am I doing wrong?但它返回了八个undefined
值,我做错了什么?
Thanks in advance.提前致谢。
Your code is almost correct!你的代码几乎是正确的! You need to return the filter on x, or shorten it.您需要返回 x 上的过滤器,或缩短它。
const filteredAutor = parsedAutor.map((x) => x.filter((y) => y !== ''));
Or或者
const filteredAutor = parsedAutor.map((x) => {
return x.filter((y) => y !== '');
});
You Need return the filter on x, or shorten it.您需要返回 x 上的过滤器,或缩短它。 return a value from your map() callback, either by using the return statement or removing the braces to make it an expression arrow function.通过使用 return 语句或删除大括号使其成为表达式箭头函数,从 map() 回调中返回一个值。
const filteredAutor = parsedAutor.map((x) => x.filter((y) => y !== ''));
or或者
const filteredAutor = parsedAutor.map((x) => {
return x.filter((y) => y !== '');
});
您需要从map()
回调中返回一个值,方法是使用return
语句或删除大括号以使其成为表达式箭头函数。
You need to return
the value from map
.您需要从map
return
值。
const filteredAutor = parsedAutor.map((x) => {
return x.filter((y) => y !== '');
});
Or else just do否则就做
const filteredAutor = parsedAutor.map(x => x.filter(y => y !== ''));
may be this one ?可能是这个?
let myDoubleArray = [ [ 'Gladson de Lima Cameli', '', 'CPF 434.611.072-04' ] , [ '30/05/2018 - Vara de Delitos de Roubo e Extorsão' ] , [ 'Gladson de Lima Cameli', '', 'CPF 434.611.072-04' ] , [ '29/02/2016 - 1ª Vara Criminal' ] , [ 'Gladson de Lima Cameli', '', 'CPF 434.611.072-04' ] , [ '18/02/2016 - 3º Juizado Especial Cível' ] , [ 'Gladson de Lima Cameli', '', 'CPF 434.611.072-04' ] , [ '18/02/2016 - 3º Juizado Especial Cível' ] ] // remove empty elements for (let inArr of myDoubleArray) { for(let i = inArr.length;i--;) { if (inArr[i]==='') inArr.splice(i,1) } } console.log(myDoubleArray)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.