vue 过滤两个对象数组不同得值?
如何过滤下面两个个不同的对象数组?然后展示它们之间不同数据第一个对象数组:
arr1 = [
{
fieldName: "aa"
},
{
fieldName: "bb"
},
{
fieldName: "cc"
},
{
fieldName: "dd"
},
]
第二个对象数组:
arr2 = [
{
fieldName: "[{\"fieldName\":\"bb\"}]"
},
{
fieldName: "[{\"fieldName\":\"cc\"}]"
}
]
过滤后找出不同的数据祖晨更新的数组:
newArr = [
{
fieldName: "aa"
},
{
fieldName: "dd"
},
]
回复
1个回答

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
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容