[
{
"partName": "大灯",
"origin": "原厂件",
"partPrice": 5272,
"remark": "现货 B3.配套厂车后市场件",
"key": 0
},
{
"partName": "大灯",
"origin": "品牌件",
"partPrice": 2276,
"remark": "现货 C6.副厂",
"key": 1
},
{
"partName": "前保",
"origin": "原厂件",
"partPrice": 2755,
"remark": "现货 B3.配套厂车后市场件",
"key": 2
},
{
"partName": "前保",
"origin": "品牌件",
"partPrice": 1704,
"remark": "现货 C1.台湾件",
"key": 3
},
{
"partName": "中网",
"origin": "原厂件",
"partPrice": 1591,
"remark": "现货 B3.配套厂车后市场件",
"key": 4
},
{
"partName": "中网",
"origin": "品牌件",
"partPrice": 802,
"remark": "现货 C6.副厂",
"key": 5
},
{
"partName": "亮条",
"origin": "原厂件",
"partPrice": 4162,
"remark": "订货4天 B3.配套厂车后市场件",
"key": 6
},
{
"partName": "亮条",
"origin": "品牌件",
"partPrice": 2205,
"remark": "订货1天 C6.副厂",
"key": 7
},
{
"partName": "大灯",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 8
},
{
"partName": "大灯",
"origin": "品牌件",
"partPrice": 129,
"remark": "现货 C1.台湾件",
"key": 9
},
{
"partName": "前保",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 10
},
{
"partName": "前保",
"origin": "品牌件",
"partPrice": 129279,
"remark": "现货 C5.拆车件(翻新件)",
"key": 11
},
{
"partName": "中网",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 12
},
{
"partName": "中网",
"origin": "品牌件",
"partPrice": 129,
"remark": "现货 C6.副厂",
"key": 13
},
{
"partName": "亮条",
"origin": "
数组sort升序排列下取第一项就行,如果取每组partName的,用下面的代码,有帮助麻烦点个采纳【本回答右上角】,谢谢~~
<script>
var arr =
[
{
"partName": "大灯",
"origin": "原厂件",
"partPrice": 5272,
"remark": "现货 B3.配套厂车后市场件",
"key": 0
},
{
"partName": "大灯",
"origin": "品牌件",
"partPrice": 2276,
"remark": "现货 C6.副厂",
"key": 1
},
{
"partName": "前保",
"origin": "原厂件",
"partPrice": 2755,
"remark": "现货 B3.配套厂车后市场件",
"key": 2
},
{
"partName": "前保",
"origin": "品牌件",
"partPrice": 1704,
"remark": "现货 C1.台湾件",
"key": 3
},
{
"partName": "中网",
"origin": "原厂件",
"partPrice": 1591,
"remark": "现货 B3.配套厂车后市场件",
"key": 4
},
{
"partName": "中网",
"origin": "品牌件",
"partPrice": 802,
"remark": "现货 C6.副厂",
"key": 5
},
{
"partName": "亮条",
"origin": "原厂件",
"partPrice": 4162,
"remark": "订货4天 B3.配套厂车后市场件",
"key": 6
},
{
"partName": "亮条",
"origin": "品牌件",
"partPrice": 2205,
"remark": "订货1天 C6.副厂",
"key": 7
},
{
"partName": "大灯",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 8
},
{
"partName": "大灯",
"origin": "品牌件",
"partPrice": 129,
"remark": "现货 C1.台湾件",
"key": 9
},
{
"partName": "前保",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 10
},
{
"partName": "前保",
"origin": "品牌件",
"partPrice": 129279,
"remark": "现货 C5.拆车件(翻新件)",
"key": 11
},
{
"partName": "中网",
"origin": "原厂件",
"partPrice": 124,
"remark": "现货 A1.国内4S(国产原厂件)",
"key": 12
},
{
"partName": "中网",
"origin": "品牌件",
"partPrice": 129,
"remark": "现货 C6.副厂",
"key": 13
}];
var kv = {},key
arr.forEach(i => {//按照partName+origin分组
key = i.partName + '-' + i.origin;
if (!kv[key]) kv[key] = [];
kv[key].push(i);
});
var newarr=[]
for (var attr in kv) {//对分组按照partPrice排序
kv[attr].sort((a, b) => a.partPrice - b.partPrice);
newarr.push(kv[attr][0]);///////
}
alert(JSON.stringify(newarr))
</script>
// 获取最小
function getMin(data, keys = ["partName", "origin"]){
let min = {};
data.forEach(item => {
let key = ""
keys.forEach((_key, i) => {
key = i === 0 ?item[_key] : key + "-" +item[_key]
})
if(min[key] === undefined){
min[key] = item
}else if(min[key].partPrice > item.partPrice){
min[key] = item
}
})
return min;
}
let min = getMin(arr)