I have two json array and object I would like to compare two json and push another object
obj1 = ["user1", "user2"]
obj2 = [
{
"userName": "user1",
"id": "14"
},
{
"userName": "user2",
"id": "9",
},
{
"userName": "user3",
"id": "3",
},
{
"userName": "user4",
"id": "1",
}
]
I would like to get the result as below
[
{
"userName": "user1",
"id": "14"
},
{
"userName": "user2",
"id": "9",
}
]
After, I tried to compare two arrays and get a result what I need.
var obj1 = ["user1","user2"]
var obj2 = [
{
"userName": "user1",
"id": "14"
},
{
"userName": "user2",
"id": "9",
},
{
"userName": "user3",
"id": "3",
},
{
"userName": "user4",
"id": "1",
}
]
var objArray = [];
for (var i = 0; i < obj.length; i++) {
if (obj1[i] === obj2.userName) {
objArray.push(obj2[i]);
}
return objArray;
Please help me to solve the issue. Thanks in advance
You could filter by checking the name with Array#includes
.
var array1 = ["user1", "user2"], array2 = [{ userName: "user1", id: "14" }, { userName: "user2", id: "9", }, { userName: "user3", id: "3", }, { userName: "user4", id: "1", }], result = array2.filter(({ userName }) => array1.includes(userName)); console.log(result);
You need two loops:
obj1[i]
, and for each index of obj1
...
obj2[]
and test each object to see whether the username
property's value equals that of obj[i]
. var obj1 = ["user1","user2"] var obj2 = [ { "userName": "user1", "id": "14" }, { "userName": "user2", "id": "9", }, { "userName": "user3", "id": "3", }, { "userName": "user4", "id": "1", }] function myFunction(){ var objArray = []; for (var i=0; i < obj1.length; i++) { for (var userIndex=0; userIndex < obj2.length; userIndex++){ if (obj1[i] === obj2[userIndex].userName){ objArray.push( obj2[userIndex] ); } } } return objArray; }; console.log(myFunction());
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.