// 数组扁平化处理 [1,2,[3,4,[5,6]]].flat(); // 对象扁平化处理 Object.flatten = function(obj){ var result = {}; function recurse(src, prop) { var toString = Object.prototype.toString; if (toString.call(src) == '[object Object]') { var isEmpty = true; for (var p in src) { isEmpty = false; recurse(src[p], prop ? prop + '.' + p : p) } if (isEmpty && prop) { result[prop] = {}; } } else if (toString.call(src) == '[object Array]') { var len = src.length; if (len > 0) { src.forEach(function (item, index) { recurse(item, prop ? prop + '.[' + index + ']' : index); }) } else { result[prop] = []; } } else { result[prop] = src; } } recurse(obj,''); return result; }