UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

45 lines (42 loc) 1.52 kB
import { __assign } from 'tslib'; import { isArray, isObject } from 'ut2'; import { objectKeys } from './utils/native.js'; function transformFieldNames(data, fieldNames, childrenField, nodeAssign) { if (nodeAssign === void 0) { nodeAssign = 'spread'; } if (!isArray(data)) { return data; } if (data.length <= 0) { return []; } function recusion(arr) { return arr.map(function (item) { if (!isObject(item)) { return item; } var newItem = nodeAssign === 'spread' ? __assign({}, item) : item; var delKeys = []; if (childrenField && isArray(newItem[childrenField]) && newItem[childrenField].length > 0) { newItem[childrenField] = recusion(newItem[childrenField].slice()); } var newKeys = objectKeys(fieldNames); newKeys.forEach(function (newKey) { var oldKey = fieldNames[newKey]; if (oldKey in newItem) { newItem[newKey] = newItem[oldKey]; if (newKeys.indexOf(oldKey) === -1) { delKeys.push(oldKey); } } }); if (delKeys.length > 0) { delKeys.forEach(function (delKey) { delete newItem[delKey]; }); } return newItem; }); } return recusion(data.slice()); } export { transformFieldNames as default };