简体   繁体   中英

Trying to compare an array with another array nested in an object

I've been quite stuck for sometime on this problem. If anyone has any guidance on how I can go about this.

This function returns all the usernames who have visited any park on the given user's wishlist.

getUsersForUserWishlist(users, "karah.branch3"); //> ["dwayne.m55"]
getUsersForUserWishlist(users, "dwayne.m55"); //> []

 const parks = [{ id: 1, name: "Acadia", areaInSquareKm: 198.6, location: { state: "Maine" }, }, { id: 2, name: "Canyonlands", areaInSquareKm: 1366.2, location: { state: "Utah" }, }, { id: 3, name: "Crater Lake", areaInSquareKm: 741.5, location: { state: "Oregon" }, }, { id: 4, name: "Lake Clark", areaInSquareKm: 10602, location: { state: "Alaska" }, }, { id: 5, name: "Kenai Fjords", areaInSquareKm: 2710, location: { state: "Alaska" }, }, { id: 6, name: "Zion", areaInSquareKm: 595.9, location: { state: "Utah" }, }, ]; const users = { "karah.branch3": { visited: [1], wishlist: [4, 6], }, "dwayne.m55": { visited: [2, 5, 1], wishlist: [], }, thiagostrong1: { visited: [5], wishlist: [6, 3, 2], }, "don.kim1990": { visited: [2, 6], wishlist: [1], }, }; function getUsersVisitedForUserWishlist(users, username) {}

If I correctly understood your function must return (as in the example below ) and not what mentionned in your example:

getUsersForUserWishlist(users, "karah.branch3"); //> ["don.kim1990"]
getUsersForUserWishlist(users, "dwayne.m55"); //> []

this solve your problem

 function getUsersForUserWishlist(users1, userName) {
        //Retreive the user wishlist
        var wishlistInd = users1[arguments[1]]["wishlist"];
        var arrayRes = [];
        //loop throght users array
        for (const [key, value] of Object.entries(users1)) {
           var filteredArray = [];
          if (  `${key}` !== userName ) {
           var filteredArray = value['visited'].filter(value => 
            wishlistInd.includes(value));
            if  (filteredArray.length != 0 ) {
              arrayRes.push( `${key}`);
            }
          }
        }
        return arrayRes;
        }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM