我有一个对象数组
var arr = [{ name: 'ABC', class: 'A', section:'1', roll_no: '123' },
{ name: 'xyz', class: 'A', section:'1', roll_no: '456' },
{ name: 'AKM', class: 'B', section:'2', roll_no: '333' },
{ name: 'PQR', class: 'A', section:'1', roll_no: '444' },
{ name: 'STU', class: 'B', section:'2', roll_no: '533' },
{ name: 'JKL', class: 'B', section:'2', roll_no: '987' }];
在这里你可以看到我有 class
和 section
,我想找到不同的 class
和 section
值(value)观。
例如,我想要获得 2 个类 A 和 B 以及 2 个第 1 部分和第 2 部分。
如何获取不同数组中的不同值?
谢谢。
编辑
我期望的输出是:
var output = [{ class: 'A', section:'1'},
{ class: 'B', section:'2'}
];
这不是重复的问题我没有使用下划线 js。
最佳答案
使用Set对象和Array.prototype.forEach()
函数的解决方案:
var arr = [{ name: 'ABC', class: 'A', section:'1', roll_no: '123' },
{ name: 'xyz', class: 'A', section:'1', roll_no: '456' },
{ name: 'AKM', class: 'B', section:'2', roll_no: '333' },
{ name: 'PQR', class: 'A', section:'1', roll_no: '444' },
{ name: 'STU', class: 'B', section:'2', roll_no: '533' },
{ name: 'JKL', class: 'B', section:'2', roll_no: '987' }];
var s = new Set(),
result = [];
arr.forEach(function (o) {
var hash = o.class + o.section;
if (!s.has(hash)) { // ensuring the unique combination of `class`+`section` values
result.push({class: o.class, section: o.section});
s.add(hash);
}
});
console.log(result);
关于javascript - 如何过滤具有保存值javascript的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42995417/