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}]

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)

TA貢獻1824條經驗 獲得超8個贊
在您的解決方案中,您正在檢查某些元素是否不等于用戶 ID,但您可能想檢查某些元素是否匹配它:
let myArrayFiltered = allUsers.filter((user) => {
return connectedUsers.some((el) => {
return user._id === el;
});
});
這僅正確返回 2 個用戶。
添加回答
舉報