javascript
JS实现对象扁平化
實現代碼:
function flat(obj) {
? ? ? ? ? ? var newObj = {}
? ? ? ? ? ? function format(o, pre) {
? ? ? ? ? ? ? ? for (let key in o) {
? ? ? ? ? ? ? ? ? ? if (typeof o[key] === 'object') {
? ? ? ? ? ? ? ? ? ? ? ? if (!pre) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? format(o[key], key)
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (Array.isArray(o)) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? format(o[key], pre + '[' + key + ']')
? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? format(o[key], pre + '.' + key)
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? if (!pre) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? newObj[key] = o[key]
? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (Array.isArray(o)) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? newObj[pre + '[' + key + ']'] = o[key]
? ? ? ? ? ? ? ? ? ? ? ? ? ? }else {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? newObj[pre + '.' + key] = o[key]
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? format(obj, null)
? ? ? ? ? ? return newObj
? ? ? ? }
console.log(flat({
? ? ? ? ? ? a: 6,
? ? ? ? ? ? b: {
? ? ? ? ? ? ? ? b: 2,
? ? ? ? ? ? ? ? c: 5,
? ? ? ? ? ? ? ? d: {e: 9}
? ? ? ? ? ? ? ?},
? ? ? ? ? ? c: [1, 2, {f: 3, g: 4}],
? ? ? ? }) )
打印結果:
?
總結
- 上一篇: 安装python环境以及安装pychar
- 下一篇: vue+elementUI动态生成表格列