假设我有一个对象数组
我尝试使用for循环,map和Lodash来获取信息。我得到了结果。但是希望以任何有效的方式完成。
我的工作代码:
arr1
。
arr1 = [{name: "name1",id: 1},{name: "name2",id: 1},{name: "name3",id: 4},{name: "name3",id: 3},{name: "name1",id: 5}]
我想要以数组或对象形式获取具有相同id的计数信息。我尝试使用for循环,map和Lodash来获取信息。我得到了结果。但是希望以任何有效的方式完成。
我的工作代码:
const arr1 = [{name: "name1",id: 1},{name: "name2",id: 1},{name: "name3",id: 4},{name: "name3",id: 3},{name: "name1",id: 5}];
const arr2 = []
for (var i = 0; i < arr1.length; i++) {
var obj = {}
_.keys(arr1[i]).map(o => {
obj[o] = arr1[i][o]
obj["count"] = arr1.filter(a => {
return a.id === arr1[i].id
}).length
})
arr2.push(obj)
}
var arr3 = _.uniqBy(arr2, "id")
console.log(arr3);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
_.countBy(arr1, "id")
?为什么不使用已经存在的功能呢? - VLAZ