UNPKG

@nutui/nutui-react

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

94 lines (93 loc) 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { findDataByName: function() { return findDataByName; }, transformData: function() { return transformData; } }); var generateId = function generateId(name) { return name.split('').reduce(function(sum, char) { return sum + char.charCodeAt(0); }, 0) // 使用字符的 Unicode 值作为 ID ; }; var transformData = function transformData(data) { var groupByWordCode = function groupByWordCode1(data, parentId, parentName) { return data === null || data === void 0 ? void 0 : data.reduce(function(acc, item) { var wordCode = item.wordCode; if (!acc[wordCode]) { acc[wordCode] = []; } var currentId = generateId(item.value); acc[wordCode].push({ name: item.value, wordCode: item.wordCode, id: currentId, pId: parentId, pName: parentName, children: item.children && groupByWordCode(item.children, currentId, item.text) || null }); return acc; }, {}); }; var extractTitles = function extractTitles1(obj) { return Object.keys(obj).map(function(key) { return { title: key, list: obj[key].map(function(item) { if (item.children) { item.children = extractTitles(item.children); } return item; }) }; }); }; var middleData = groupByWordCode(data, '', ''); var resultData = extractTitles(middleData); return resultData; }; var findDataByName = function findDataByName1(data, name) { var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined; try { for(var _iterator = data[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){ var item = _step.value; var _item_name; if (((_item_name = item.name) === null || _item_name === void 0 ? void 0 : _item_name.indexOf(name)) === 0) return item; if (item.children) { var found = findDataByName(item.children, name); if (found) return found; } if (item.list) { var found1 = findDataByName(item.list, name); if (found1) return found1; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally{ try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally{ if (_didIteratorError) { throw _iteratorError; } } } return null // 如果没有找到,返回 null ; };