我想在数组中显示Object的特定值,例如,这是我的数组:
{
_id: "myid",
typeFilter: "two",
brand: "ABC",
mrp: "50,000.00",
Insurance: "1,596.00",
registration_charg: "5,510.16"
},
// ...
{
_id: "myid2",
typeFilter: "three",
brand: "ABC",
mrp: "40,000.00",
Insurance: "8,596.00",
registration_charg: "7,580.16"
},
// ...
这是我从我的数据库中获取的内容,因此brand
值在2个位置为ABC
在我的代码中,我只在Picker中显示品牌价值所以我得到的是同一品牌的2倍,我想让它只出现一次
那我怎么能实现这个呢?
答案 0 :(得分:2)
如果ES6不是问题,您可以使用Set来获取没有重复项的品牌列表:
var arr= [
{
_id: "myid",
typeFilter: "two",
brand: "ABC",
mrp: "50,000.00",
Insurance: "1,596.00",
registration_charg: "5,510.16"
},
{
_id: "myid2",
typeFilter: "three",
brand: "ABC",
mrp: "40,000.00",
Insurance: "8,596.00",
registration_charg: "7,580.16"
}
];
var brands = Array.from(new Set(arr.map(el => el.brand)));
console.log(brands);

答案 1 :(得分:2)
使用lodash:
var brands = _.uniq(_.map(array, "brand"));
_.map
将获得所有品牌名称(包括重复项)的数组,然后_.uniq
将删除重复项并返回一组唯一值。
答案 2 :(得分:0)
function removeDuplicates(myArr, prop) {
return myArr.filter((obj, pos, arr) => {
return arr.map(mapObj => mapObj[prop]).indexOf(obj[prop]) === pos;
});
}
myArr
是一个对象数组。此函数返回一个不包含重复道具值的数组。在您的情况下,您可以传递数组和品牌