在 JavaScript 中按属性对对象进行分组
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/9 21:00:17
假设我们有一个对象数组,其中包含一些水果和蔬菜的数据,例如 −
const arr = [
{food: 'apple', type: 'fruit'},
{food: 'potato', type: 'vegetable'},
{food: 'banana', type: 'fruit'},
];
我们需要编写一个 JavaScript 函数来接收一个这样的数组。
然后,我们的函数应该根据"type"对数组对象进行分组对象的属性。
这意味着所有"水果"类型的对象都分组在一起,而"蔬菜"类型则单独分组在一起。
示例
其代码为 −
const arr = [
{food: 'apple', type: 'fruit'},
{food: 'potato', type: 'vegetable'},
{food: 'banana', type: 'fruit'},
];
const transformArray = (arr = []) => {
const res = [];
const map = {};
let i, j, curr;
for (i = 0, j = arr.length; i < j; i++) {
curr = arr[i];
if (!(curr.type in map)) {
map[curr.type] = {type: curr.type, foods: []};
res.push(map[curr.type]);
};
map[curr.type].foods.push(curr.food);
};
return res;
};
console.log(transformArray(arr));
输出
控制台中的输出将是 −
[
{ type: 'fruit', foods: [ 'apple', 'banana' ] },
{ type: 'vegetable', foods: [ 'potato' ] }
]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

