I am trying to compare two arrays but it is not filtering correctly. I am trying to add users, my function compares the ID and StaffID and if the StaffID is not in the current user array it should set the state of new user so they can be added.
export default function AddUserDropdown({onChange}) {
useEffect(() => {
getUsersToAdd();
}, []);
const [state, setState] = React.useState({
open: false,
name: '',
users:[],
id:null,
});
const [user, setUser] = React.useState({
newUsers: []
})
const getUsersToAdd = () => {
axios.all([
axios.get('/updateUserList'),
axios.get('/userInformation')
])
.then(axios.spread((newUserBox, currentUserBox) => {
console.log(newUserBox.data)
console.log(currentUserBox.data)
// const newUserIds = new Set(newUserBox.data.map(({ id }) => id));
// console.log('These are the newUserIDs ' + newUserIds)
let newUserIds = []
let currentUserIds = []
for (let newUser of currentUserBox.data){
newUserIds.push(newUser.id)
console.log(newUser.id)
console.log(newUserIds)
}
// console.log(newUserIds)
for (let user of newUserBox.data){
if(!newUserIds[user.staffID]){
currentUserIds.push(user)
console.log(currentUserIds)
}
}
setUser({...user, newUsers: currentUserIds });
}))
}
When the axios calls request userinformation endpoint it returns this
[
{
"id": 1,
"firstName": "Elton",
"lastName": "Frederick",
"departmentId": 1,
"admin": true,
"hasApproval": false,
"position": "Developer",
"vh5given": 31,
"vh5rec": 280,
"profilePic": "https://www.travelplannersinternational.com/wp-content/uploads/2019/12/Elton.jpg",
"password": "abc234"
},
{
"id": 2,
"firstName": "Julio",
"lastName": "Probando",
"departmentId": 1,
"admin": false,
"hasApproval": true,
"position": "Lead Dev",
"vh5given": 11,
"vh5rec": 339,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/03/Julio_.jpg?lossy=1&strip=1&webp=1",
"password": "abc232"
},
{
"id": 3,
"firstName": "Corey",
"lastName": "Chris",
"departmentId": 2,
"admin": false,
"hasApproval": false,
"position": "Customer Service",
"vh5given": 14,
"vh5rec": 167,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/09/Corey.jpg?lossy=1&strip=1&webp=1",
"password": "abc123"
},
{
"id": 4,
"firstName": "Daisy",
"lastName": "Ramos",
"departmentId": 3,
"admin": false,
"hasApproval": false,
"position": "ATC",
"vh5given": 22,
"vh5rec": 202,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/03/Daisy_.jpg?lossy=1&strip=1&webp=1",
"password": "abc321"
},
{
"id": 7,
"firstName": "Air Car Hotel",
"lastName": "Nunca",
"departmentId": 4,
"admin": false,
"hasApproval": false,
"position": "",
"vh5given": 0,
"vh5rec": 25,
"profilePic": "profile.jpg",
"password": "abc123"
},
{
"id": 8,
"firstName": "Jenn",
"lastName": "Lee",
"departmentId": 4,
"admin": false,
"hasApproval": false,
"position": "Vp Of Sales",
"vh5given": 0,
"vh5rec": 0,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/03/Jenn2_.jpg?lossy=1&strip=1&webp=1",
"password": "abc123"
},
{
"id": 9,
"firstName": "Reyna",
"lastName": "Pagan",
"departmentId": 5,
"admin": false,
"hasApproval": false,
"position": "Agent Support Manager",
"vh5given": 0,
"vh5rec": 20,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/03/Reyna_.jpg?lossy=1&strip=1&webp=1",
"password": "abc123"
},
{
"id": 10,
"firstName": "Ameilia",
"lastName": "Rodriguez",
"departmentId": 6,
"admin": false,
"hasApproval": false,
"position": "Human Resources",
"vh5given": 0,
"vh5rec": 5,
"profilePic": "https://388616.smushcdn.com/941012/wp-content/uploads/2019/03/Amelia_.jpg?lossy=1&strip=1&webp=1",
"password": "abc123"
}
]
These are the users that have been added.
When the updateUserList endpoint is called it returns:
[
{
"staffID": 1,
"dept": "Junior Web Developer",
"email": "manasaN@tpionline.com",
"name": "manasa",
"password": "$2y$10$/zYS7OhzwdLOi6Slzc3Rv.aJFJALiY0y1J6MjnLCN24GmZ3rMHWUS"
},
{
"staffID": 2,
"dept": "Web Developer",
"email": "juliof@tpionline.net",
"name": "Julio Fajardo",
"password": "$2y$10$MphAC8aRY2uzs1ZERZDn9uvCqK1/1nd7t0KukEkvGbx5Y4van.Da6"
},
{
"staffID": 3,
"dept": "Fake Title",
"email": "johnf@tpionline.com",
"name": "John Fester",
"password": "$2y$10$/oa/ESQmhhc5WvxrQKoUU.Pj5sM3gZY5FccilGfCUL5eyeOU5IDSa"
},
{
"staffID": 5,
"dept": "Fake Title",
"email": "fakeguy@gmail.net",
"name": "Test",
"password": "$2y$10$VWnnw5gRTN2absWos04fsOixW6TjOepNa3n0v/7ybFqsFZL8oPiJm"
},
{
"staffID": 6,
"dept": "Conf room",
"email": "conf2@gmail.com",
"name": "Conf 1st floor",
"password": "$2y$10$KAZa1k2Sd/rg6dnVeqw4duB/XbAhcVXP.Fze6Zle3ZhcMaRphloG."
},
{
"staffID": 8,
"dept": "Fake Title",
"email": "newguy@gmail.net",
"name": "New guy",
"password": ""
},
{
"staffID": 9,
"dept": "Fake Title",
"email": "nguy@gmail.net",
"name": "New Guy2",
"password": ""
},
{
"staffID": 12,
"dept": "Test ADD",
"email": "cristinab@tpionline.com",
"name": "Cristina Bermudez",
"password": "$2y$10$92I6fSJY6OW001caJJmeReHnaeF5tdHBjWHBmoCvX1RnfhTspjpBa"
},
{
"staffID": 30,
"dept": "Erwing",
"email": "erwingh@tpionline.com",
"name": "Erwing Hernandez",
"password": "$2y$10$RWgOBbUHojgmyk3behYhd.kzdFEiH.6BBaxn4B070pS5q5Gf3ZYEa"
}
]
What I need to accomplish is that if the there is no current user whose ID equals the staff ID it should be set in the state so i can add this user. With the data above the users that should be added should be have the staff ID of: 5, 6, 12,30.
Right Now My functions returns:
0: {staffID: 8, dept: "Fake Title", email: "newguy@gmail.net", name: "New guy", password: ""}
1: {staffID: 9, dept: "Fake Title", email: "nguy@gmail.net", name: "New Guy2", password: ""}
2: {staffID: 12, dept: "Test ADD", email: "cristinab@tpionline.com", name: "Cristina Bermudez", password: "$2y$10$92I6fSJY6OW001caJJmeReHnaeF5tdHBjWHBmoCvX1RnfhTspjpBa"}
3: {staffID: 30, dept: "Erwing", email: "erwingh@tpionline.com", name: "Erwing Hernandez", password: "$2y$10$RWgOBbUHojgmyk3behYhd.kzdFEiH.6BBaxn4B070pS5q5Gf3ZYEa"}