UNPKG

util-helpers

Version:

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

47 lines (43 loc) 1.53 kB
'use strict'; var tslib = require('tslib'); var ut2 = require('ut2'); var native = require('./utils/native.js'); function transformFieldNames(data, fieldNames, childrenField, nodeAssign) { if (nodeAssign === void 0) { nodeAssign = 'spread'; } if (!ut2.isArray(data)) { return data; } if (data.length <= 0) { return []; } function recusion(arr) { return arr.map(function (item) { if (!ut2.isObject(item)) { return item; } var newItem = nodeAssign === 'spread' ? tslib.__assign({}, item) : item; var delKeys = []; if (childrenField && ut2.isArray(newItem[childrenField]) && newItem[childrenField].length > 0) { newItem[childrenField] = recusion(newItem[childrenField].slice()); } var newKeys = native.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()); } module.exports = transformFieldNames;