vue 过滤两个对象数组不同得值?

作者站长头像
站长
· 阅读数 10

如何过滤下面两个个不同的对象数组?然后展示它们之间不同数据第一个对象数组:

arr1 = [
  {
     fieldName: "aa"
  },
{
     fieldName: "bb"
  },
{
     fieldName: "cc"
  },
{
     fieldName: "dd"
  },
]

第二个对象数组:

arr2 = [
      {
         fieldName: "[{\"fieldName\":\"bb\"}]"
      },
      {
         fieldName: "[{\"fieldName\":\"cc\"}]"
      }
]

过滤后找出不同的数据祖晨更新的数组:

newArr = [
  {
     fieldName: "aa"
  },
{
     fieldName: "dd"
  },
]
回复
1个回答
avatar
test
2024-06-30

其实1楼写的没啥问题,你自己写的如果没有作用的话,你得把你自己写的函数贴上来啊。

var arr1 = [
  { fieldName: "aa" },
  { fieldName: "bb" },
  { fieldName: "cc" },
  { fieldName: "dd" },
]
var arr2 = [
  { fieldName: "[{\"fieldName\":\"bb\"}]" },
  { fieldName: "[{\"fieldName\":\"cc\"}]" }
]
// 转换 arr 的JSON内容,并且推平数组
var transfList = arr2.map(item => JSON.parse(item.fieldName)).flat()
// 过滤结果
var filterList = arr1.filter(data => {
  // 如果有在转换后的列表中匹配到相同的 fieldName 则返回 false
  return !transfList.some(d => d. fieldName === data.fieldName)
})
// 输出过滤结果
console.log(filterList)
// Array [ {…}, {…} ]
//   0: Object { fieldName: "aa" }
//   1: Object { fieldName: "dd" }
//   length: 2
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容