分类: 前端技术
另外一种扁平化、反扁平化json结构的方法(尽量使用“[]”)
{a:{b:1}} <==> {a[“b”]:1} 参考上一篇所做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | JSON.unflatten = function(data) { "use strict"; if (Object(data) !== data || Array.isArray(data)) return data; var regex = /\.?([^.\[\]]+)|\[(\d+)\]|\[([^\d\W]\w*)\]/g, resultholder = {}; for (var p in data) { var cur = resultholder, prop = "", m; while (m = regex.exec(p)) { cur = cur[prop] || (cur[prop] = (m[2] ? [] : {})); prop = m[2] || m[1] || m[3]; prop = prop.replace(/^[\'\"]|[\'\"]$/g,''); } cur[prop] = data[p]; } return resultholder[""]; }; JSON.flatten = function(data) { var result = {}; function recurse (cur, prop) { if (Object(cur) !== cur) { result[prop] = cur; } else if (Array.isArray(cur)) { for(var i=0, l=cur.length; i<l; i++) recurse(cur[i], prop + "[" + i + "]"); if (l == 0) result[prop] = []; } else { var isEmpty = true; for (var p in cur) { isEmpty = false; recurse(cur[p], prop ? prop+'["'+p+'"]' : p); } if (isEmpty) result[prop] = {}; } } recurse(data, ""); return result; } |
快速扁平化、反扁平化json结构 | Fastest way to flatten / un-flatten nested JSON objects
Here’s my much shorter implementation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | JSON.unflatten = function(data) { "use strict"; if (Object(data) !== data || Array.isArray(data)) return data; var regex = /\.?([^.\[\]]+)|\[(\d+)\]/g, resultholder = {}; for (var p in data) { var cur = resultholder, prop = "", m; while (m = regex.exec(p)) { cur = cur[prop] || (cur[prop] = (m[2] ? [] : {})); prop = m[2] || m[1]; } cur[prop] = data[p]; } return resultholder[""]; }; |
JSON.flatten hasn’t much changed (and I’m not sure whether yo 继续>
对于现代开发来说,JavaScript就是一种垃圾语言
本文由 伯乐在线 – 蔡蔡 翻译自 julik live。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 伯乐在线导读:昨天 Reddit/Programming 频道的头条热帖是一篇来自 julik live 博主的技术吐槽文,最初的英文标题是“For modern develop 继续>
URL 中,查询字符串与HTML实体冲突,可能带来的问题.(2篇)
此问题相关信息(我不放在最前面,似乎有些朋友会找不到的样子.) IE10+, Safari5.17+, Firefox4.0+,Opera12+, Chrome7+ 已经按新标准实现. 所以就没有这个问题了. 参考标准 : http://www.w3.org/html/ig/zh/wiki/HTML 继续>
Cross-browser custom CSS cursors
origin|转载来源:http://beradrian.wordpress.com/2008/01/08/cross-browser-custom-css-cursors/ You can see that big portion is for making the design work in 继续>
帮助快速生成页面固定显示元素的jQuery插件 – sticky-kit
如果需要在用户滚动页面的时候,保持特定元素始终可见的话,今天这里我们介绍的Sticky-Kit是一个不错的选择。 它是一个开源的jQuery插件,可以帮助大家快速针对页面元素来生成固定页面的效果。往往大家在开发导航栏的时候,需要类似这样的功能。 主要的特性 支持多个元素的固定展示 支持元素展示的位置 继续>
最好用的20个数据可视化工具
从简单列表到复杂的地图或信息图表,Brian Suda工具集合了最好用的,几乎全部免费的数据处理工具供你使用。人们问我最多的问题,就是如何使数据可视化。通过以下介绍,加以练习,你就能理解如何 使用这些工具了。在本篇文章中,我将介绍20种不同的数据可视化工具:从简单列表到复 继续>
如何简单快速的修改Bootstrap
Bootstrap并不是单单意味着HTML/CSS界面框架,更确切的说,它改变了整个游戏规则。这个囊括了应有尽有的代码框架使得许多应用和网站的设计开发变得简便许多,而且它将大量的HTML框架普及成了产品。 可悲的是,它纯粹的功能唤起了我们本能的懒惰,很多人始终坚持使用它的默认设置。现在,你要知道,这 继续>
pjax:ajax和pushState结合的js库
上篇文章讲到如何使用ajax+pushState打造无刷新改变URL的方式。虽然这种方式是将ajax、history.pushState、history.replaceStatte、window.onpopstate等几个技术点结合,但在具体使用中还是要考虑到很多情况的,如: 1、改变内容的时候也要 继续>
html表单(form)美化:uniformjs
基于jquery,兼容性: Tested & Compatible in: Safari 3+ Firefox 3+ IE7+ Chrome jQuery 1.3+ Opera 10+ Degrades gracefully in IE6 http://unifo 继续>
HTTP/2.0 is good news for CDNs and FEO
In case you didn’t hear, a new HTTP version is coming to town. There’s a lot of great information about it, including a recent post by Stephen Ludin a 继续>
javascript:new F()的语义
new F 的语义定义是这样的:
1 2 3 4 | var obj = Object.create(F.prorotype) var res = F.apply(obj, arguments) if(!IS_PRIMITIVE_TYPE(ret)) return ret else return obj |
by belleve
Smooth CSS transitions by forcing GPU rendering
Let’s say you have a CSS transition that takes an element and scales it two times on mouseover. Your code probably looks like this: [crayon-6741a02d10 继续>
[科普]浏览器 UA 史
本文原文来自 WebAIM 2008 年介绍浏览器 User Agent 演化史的一篇文章 (http://webaim.org/blog/user-agent-string-history/),内容有各个主流浏览器 UA 串的产生原因和为什么所有浏览器都带有 Mozilla 等问题的解释。读过 I 继续>