组中具有布尔值true的id"/>
无法过滤对象数组中具有布尔值true的id
我正在尝试过滤那些在
isPaymentCompleted: true
内具有 arr_object
的记录 ID,但条件是最后一个对象的布尔值必须为 false。如果 arr_object 中除了最后一个之外还有另一个 false 值,那么所有其他对象的布尔值都必须是实际的,那么该记录的 id 将不会被选择。
理解我的查询有什么问题请评论
我已经尝试了很多次,但仍然无法弄清楚如何解决这个问题。请任何人帮助我
这是我的数据库模式的图像
我只想要记录 id,而不是内部数组对象 id。
回答如下:const obj1 = {
_id: "4fkdjvcdvdvdfv",
user: "fcnjdjkriinc",
timeOfHolding: "6months ",
startedDate: "2023-03-03",
isSchemeCompleted: false,
arr_object: [
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvffkdccedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvffvfckedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvfcdffkedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvvfddffkedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvrvgrcvffkedmkn",
isPaymentComplete: false,
},
]
}
const obj2 = {
_id: "4fkdjvcdvdvdfv",
user: "fcnjdjkriinc",
timeOfHolding: "6months ",
startedDate: "2023-03-03",
isSchemeCompleted: false,
arr_object: [
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvffkdccedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvffvfckedmkn",
isPaymentComplete: false,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvfcdffkedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvcvvfddffkedmkn",
isPaymentComplete: true,
},
{
amount: 5000,
deals: null,
date_paid: "2023-05-11T18:30:00",
_id: "3434fdvrvgrcvffkedmkn",
isPaymentComplete: false,
},
]
}
const filterArr = (arr) => {
let tempArr = [];
let count = 0;
for (let i=0; i<arr?.arr_object?.length; i++) {
const obj = arr?.arr_object;
if (!obj[i].isPaymentComplete) count++;
}
if (count === 1) {
tempArr = arr?.arr_object?.map((obj) => obj._id);
}
return tempArr;
}
console.log(filterArr(obj1));
console.log(filterArr(obj2));
// In case you want user id the filterArr function would be like this
const filterArr = (arr) => {
let count = 0;
for (let i=0; i<arr?.arr_object?.length; i++) {
const obj = arr?.arr_object;
if (!obj[i].isPaymentComplete) count++;
}
if (count === 1) return arr?.user;
};
更多推荐
无法过滤对象数组中具有布尔值true的id
发布评论