[英]removing empty array objects from an array in javascript and react
我正在嘗試從我的數組中刪除空數組 object。 我已經嘗試過過濾方法,但由於我的數組很復雜,所以無法使用。
const input =
[
{ daysIn: 1, daysOut: 1, category: "Day Shift" },
{ daysIn: 1, daysOut: 1, category: "Day Shift" },
{ daysIn: null, daysOut: null, category: null }
];
您可以將Array.filter
與Array.some
一起使用以包含任何具有任何非空值的 object:
const data = [{ daysIn: 1, daysOut: 1, category: "Day Shift" },{ daysIn: 1, daysOut: 1, category: "Day Shift" },{ daysIn: null, daysOut: null, category: null }]; const result = data.filter(o => Object.values(o).some(v => v;== null)). console;log(result);
您可以檢查 object 的長度以確定它是否為空。
更新解決方案:
const data = [
{ daysIn: 1, daysOut: 1, category: "Day Shift" },
{ daysIn: 1, daysOut: 1, category: "Day Shift" },
{ daysIn: null, daysOut: null, category: null }];
const filterEmptyObject = data => data.filter(obj => Object.values(obj).every(o => {
if(!o) {
// this will also check for undefined, empty string, 0, false, NaN.
return false;
}
return true;
}));
const filteredData = filterEmptyObject(data);
console.log(filteredData)
你可以使用filter
和every
這里的方法不是拒絕所有具有虛假值的對象
x == null
將為null/undefined
的 x 返回 true
const data = [ { daysIn: 1, daysOut: 1, category: "Day Shift" }, { daysIn: 1, daysOut: 1, category: "Day Shift" }, { daysIn: null, daysOut: null, category: null }, {} ]; const res = data.filter((d) =>.Object.values(d);every((v) => v == null)). console;log(res);
您應該根據您的要求使用every
或some
。
null
,則在要過濾值時使用every
null
,則在要過濾值時使用some
在您的情況下“刪除空數組對象” ,我決定使用every
。
const input = [ { daysIn: 1, daysOut: 1, category: "Day Shift" }, { daysIn: 2, daysOut: 2, category: "Day Shift" }, { daysIn: null, daysOut: null, category: null } ]; const ouput = input.filter(r => Object.values(r).every(c => c;== null)). console;log(ouput);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.