亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用字符串數組過濾對象數組

使用字符串數組過濾對象數組

Smart貓小萌 2022-12-09 15:26:11
我想通過字符串數組過濾出對象數組let allUsers = [{  "avatar":null,  "deleted":false,  "_id":"5f1f5df967b3240004f50a36",  "email":"[email protected]",  "password":"$2a$10$5eKv6OVouPnPH.3g9STEYO990V.L14kpD2ImZ3AtZtHaRjCg4oj/6",  "fcm":"fcm3",  "createdAt":"2020-07-27T23:06:33.683Z",  "updatedAt":"2020-07-27T23:06:33.683Z",  "__v":0},{  "avatar":null,  "deleted":false,  "_id":"5f1f5e0067b3240004f50a37",  "email":"[email protected]",  "password":"$2a$10$czA2dASdEo1Dw0oAxw.y1eJwg4lrZW12tLE6sUeG5k.PThuineTIm",  "fcm":"fcm2",  "createdAt":"2020-07-27T23:06:40.702Z",  "updatedAt":"2020-07-27T23:06:40.702Z","__v":0},{  "avatar":null,  "deleted":false,  "_id":"5f1f5d9167b3240004f50a33",  "email":"[email protected]",  "password":"$2a$10$0O2aDCCSibWlNznIWfHTxuY8vNq4Sge/YDRuntKJl9UKnSI.9TEfC",  "fcm":"fcm1",  "createdAt":"2020-07-27T23:04:49.285Z",  "updatedAt":"2020-07-27T23:04:49.285Z",  "__v":0}]let connectedUsers = ['5f1f5df967b3240004f50a36','5f1f5e0067b3240004f50a37']輸出應該是不在第二個數組中的第三個用戶:myArrayFiltered = [  {    "avatar":null,    "deleted":false,    "_id":"5f1f5d9167b3240004f50a33",    "email":"[email protected]",    "password":"$2a$10$0O2aDCCSibWlNznIWfHTxuY8vNq4Sge/YDRuntKJl9UKnSI.9TEfC",    "fcm":"fcm1",    "createdAt":"2020-07-27T23:04:49.285Z",    "updatedAt":"2020-07-27T23:04:49.285Z",    "__v":0  }]我試過了 let myArrayFiltered = allUsers.filter((user) => {    return connectedUsers.some((el) => {      return user._id !== el;    });  });但它返回所有 3 個用戶編輯:所有答案都返回第二個數組中的 2 個用戶,但我想要的是不是用戶,即 ID 為“5f1f5d9167b3240004f50a33”的用戶
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您不需要遍歷第二個數組。你只需要檢查它是否user._id在connectedUsers數組中。像這樣:


let allUsers = [{"avatar":null,"deleted":false,"_id":"5f1f5df967b3240004f50a36","email":"[email protected]","password":"$2a$10$5eKv6OVouPnPH.3g9STEYO990V.L14kpD2ImZ3AtZtHaRjCg4oj/6","fcm":"fcm3","createdAt":"2020-07-27T23:06:33.683Z","updatedAt":"2020-07-27T23:06:33.683Z","__v":0},{"avatar":null,"deleted":false,"_id":"5f1f5e0067b3240004f50a37","email":"[email protected]","password":"$2a$10$czA2dASdEo1Dw0oAxw.y1eJwg4lrZW12tLE6sUeG5k.PThuineTIm","fcm":"fcm2","createdAt":"2020-07-27T23:06:40.702Z","updatedAt":"2020-07-27T23:06:40.702Z","__v":0},{"avatar":null,"deleted":false,"_id":"5f1f5d9167b3240004f50a33","email":"[email protected]","password":"$2a$10$0O2aDCCSibWlNznIWfHTxuY8vNq4Sge/YDRuntKJl9UKnSI.9TEfC","fcm":"fcm1","createdAt":"2020-07-27T23:04:49.285Z","updatedAt":"2020-07-27T23:04:49.285Z","__v":0}];

let connectedUsers = ['5f1f5df967b3240004f50a36','5f1f5e0067b3240004f50a37'];

let myArrayFiltered = allUsers.filter(user => {

  return connectedUsers.includes(user._id);

});

console.log(myArrayFiltered);

  

// myArrayFiltered = [{"avatar":null,"deleted":false,"_id":"5f1f5d9167b3240004f50a33","email":"[email protected]","password":"$2a$10$0O2aDCCSibWlNznIWfHTxuY8vNq4Sge/YDRuntKJl9UKnSI.9TEfC","fcm":"fcm1","createdAt":"2020-07-27T23:04:49.285Z","updatedAt":"2020-07-27T23:04:49.285Z","__v":0}]



查看完整回答
反對 回復 2022-12-09
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

您可以使用 indexOf 方法來檢查數組中的項目或不作為


let myArrayFiltered = allUsers.filter((user) => {

        return connectedUsers.indexOf(user._id) > -1;

      });

let allUsers = 

[{"avatar":null,"deleted":false,"_id":"5f1f5df967b3240004f50a36","email":"[email protected]","password":"$2a$10$5eKv6OVouPnPH.3g9STEYO990V.L14kpD2ImZ3AtZtHaRjCg4oj/6","fcm":"fcm3","createdAt":"2020-07-27T23:06:33.683Z","updatedAt":"2020-07-27T23:06:33.683Z","__v":0},{"avatar":null,"deleted":false,"_id":"5f1f5e0067b3240004f50a37","email":"[email protected]","password":"$2a$10$czA2dASdEo1Dw0oAxw.y1eJwg4lrZW12tLE6sUeG5k.PThuineTIm","fcm":"fcm2","createdAt":"2020-07-27T23:06:40.702Z","updatedAt":"2020-07-27T23:06:40.702Z","__v":0},{"avatar":null,"deleted":false,"_id":"5f1f5d9167b3240004f50a33","email":"[email protected]","password":"$2a$10$0O2aDCCSibWlNznIWfHTxuY8vNq4Sge/YDRuntKJl9UKnSI.9TEfC","fcm":"fcm1","createdAt":"2020-07-27T23:04:49.285Z","updatedAt":"2020-07-27T23:04:49.285Z","__v":0}]

 let connectedUsers = ['5f1f5df967b3240004f50a36','5f1f5e0067b3240004f50a37']

 

  let myArrayFiltered = allUsers.filter((user) => {

    return connectedUsers.indexOf(user._id) > -1;

  });

  

  console.log(myArrayFiltered)


查看完整回答
反對 回復 2022-12-09
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

在您的解決方案中,您正在檢查某些元素是否不等于用戶 ID,但您可能想檢查某些元素是否匹配它:


let myArrayFiltered = allUsers.filter((user) => {

  return connectedUsers.some((el) => {

    return user._id === el;

  });

});

這僅正確返回 2 個用戶。


查看完整回答
反對 回復 2022-12-09
  • 3 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號