javascript - 如何从对象数组中返回匹配的属性值
问题描述
我有以下数组,
var abc = [
{name: 'name1', id: '1', value: 1},
{name: 'name2', id: '2', value: 3},
{name: 'name3', id: '3', value: 2},
{name: 'name4', id: '4', value: 2}
];
我想回来,
var abc = [
{name: 'name3', id: '3', value: 2},
{name: 'name4', id: '4', value: 2}
];
因为两个对象具有相同的值。我如何使用 lodash 或 javascript 来实现这一点。
解决方案
您可以创建一个对象,其值将是一个数组,该数组将仅包含那些值相同的对象
var abc = [{
name: 'name1',
id: '1',
value: 1
},
{
name: 'name2',
id: '2',
value: 3
},
{
name: 'name3',
id: '3',
value: 2
},
{
name: 'name4',
id: '4',
value: 2
}
];
let m = abc.reduce(function(acc, curr) {
if (!acc.hasOwnProperty(curr.value)) {
acc[curr.value] = [];
}
acc[curr.value].push(curr)
return acc;
}, {})
Object.keys(m).forEach(function(item) {
if (m[item].length > 1) {
console.log(m[item])
}
})
推荐阅读
- kotlin - DWARF 错误:尝试在 Kotlin/Native cinterop 中包含 secext.h 时出现错位的行号部分
- python-3.x - tkinter ttk 样式布局未找到
- javascript - Nuxt:如何防止某人离开页面或刷新?(如果工作未保存)
- reactjs - 如何在本机反应中加快应用程序启动时间
- c++ - 使用私有继承的超出范围错误
- c# - 按对象属性对类对象进行基本排序
- javascript - 发布到服务器后如何控制台日志或警告数据
- javascript - 如何使用 fft.js 和 node.js 从音频 wav 文件中获取频谱
- c# - 没有得到如何使用充值供应商 api 调用我的回调 URL
- python - 循环拉取文件大小、文件夹大小和目录大小?