JavaScript中比较好用且实用的代码集合【数组篇2】

数组篇2

1、树形结构构建函数

// 不需要传入顶级节点
function buildTree(data) {
  let map = {};
  data.forEach((node) => {
	node.children = [];
	map[node.id] = node;
  });
  let roots = [];
  data.forEach((node) => {
	if (map[node.parentId]) {
	  map[node.parentId].children.push(node);
	} else {
	  roots.push(node);
	}
  });
  return roots;
}

2、数组分组函数

Array.prototype.groupBy = function(fn) {
    return this.reduce((acc, item) => {
        const key = fn(item);
        if (!acc[key]) {
            acc[key] = [];
        }
        acc[key].push(item);
        return acc;
    }, {});
};

const array = [{"id": "1"}, {"id": "1"}, {"id": "2"}];
const fn = function(item) {
    return item.id;
};

const grouped = array.groupBy(fn);
console.log(grouped);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值