javascript - 如何比较 Javascript 中的数组和对象?

标签 javascript arrays object compare

我有两个 json 数组和对象 我想比较两个 json 并推送另一个对象

obj1 = ["user1", "user2"]
obj2 = [
  {
    "userName": "user1", 
    "id": "14" 
  },
  {
    "userName": "user2",
    "id": "9",
  },
  {
    "userName": "user3",
    "id": "3",
  },
  {
    "userName": "user4",
    "id": "1",
  }
]

我想得到如下结果

[
  {
    "userName": "user1",
    "id": "14"
  },
  {
    "userName": "user2",
    "id": "9",
  }
]

之后,我尝试比较两个数组并得到我需要的结果。

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;

请帮我解决这个问题。 提前致谢

最佳答案

您可以通过使用 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);

关于javascript - 如何比较 Javascript 中的数组和对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52610822/

相关文章:

Javascript 属性作为对其他对象属性的引用

javascript - 转换类类型并调用静态属性

c++ - 用多维数组初始化C++多维 vector ?

javascript - Express with ParseServer - 无法连接到 <ip> 端口 1337,连接超时

android - 如何更新 Firestore 中 map 数组中的元素?

arrays - Swift:从数组中删除特定对象的更好方法?

php - 克隆如何创建单例的新版本?

javascript - 在javascript中按值作为键创建新对象

javascript - 如何确保 JSONModel 的数据已加载?

javascript - 正确导入模块